php設定session id的方法:先建立一個PHP範例檔案;然後透過「session_id("...");session_start();」語句來設定Session會話ID即可。
本文操作環境:Windows7系統、PHP7.1版,DELL G3電腦
php session_id()取得或設定Session會話ID
php session_id()函數可取得或重新配置目前存放Session 會話的ID,本文章向大家介紹Session產生過程及session_id 恢復session的內容,需要的朋友可以參考一下。
session_id()函數介紹
session_id()取得或設定Session會話ID
語法:
string session_id(string [id]);
若無參數id 則表示只有取得目前Session 的代號,加上參數則表示將Session 代號設為新指定的id。輸入及返回均為字串。
如果沒有設定參數ID,則表示取得Session會話ID,否則表示將Session會話設為新指定的ID。
註:ID均為字串形式。
session_id()實例
#取得Session會話ID
<?php session_start(); echo session_id(); // 输出 urles147jbrq3u50b0l6f8hvf0 ?>
設定Session會話ID
#<?php session_id("ilovemanongjc.com"); session_start(); /* http://www.manongjc.com/article/1260.html */ echo session_id(); // 输出 ilovemanongjc.com ?>
Session生成過程介紹
一個訪客訪問你的web網站將被分配一個唯一的id, 就是所謂的會話id. 這個id可以儲存在用戶端的一個cookie中,也可以透過URL進行傳遞. Session會話用來追蹤每個使用者的會話,使用伺服器產生的SessionID進行標識,用以區分使用者。 Session存放在伺服器的記憶體中,SessionID存放在伺服器記憶體和客戶機的Cookie裡面。這樣,當使用者發出請求時,伺服器將使用者Cookie裡面記錄的SessionID和伺服器記憶體中的SessionID進行比對,從而找到這個使用者對應的Session進行操作。所以,如果客戶機禁止Cookie的話,Session也不能使用。
php會話ID是如何產生的? PHP預設的session id生成演算法介紹
以php5.3.6的原始碼為例,進入/ext/session目錄,產生session id的函數位於session.c檔案的345行,c語言函數原型如下:
PHPAPI char *php_session_create_id(PS_CREATE_SID_ARGS);
【推薦學習:PHP影片教學】
session_id如何恢復session的內容
php的session是可以程式恢復的,這個跟java不太一樣。 session的復原機制可以實現多個應用程式session的共享,因為php的session都是以檔案形式或資料庫儲存的。首先是session_id的獲取是透過session_id()函數獲取,這個值可以進行傳遞。
程式恢復session,首先要知道session_id,大家透過手冊可以知道session的恢復透過session_id($id);但是在恢復時要注意一個先後順序,要得到之前session的內容,必須在session_start ()之前執行session_id($id),這樣才能在執行了session_start時初始化session的時候恢復到之前的內容,否則的話你得到的是一個空的session,你什麼也得不到。之前session被重新初始化了。這個和session_start()的作用有密切關係,因為session_start告訴php,session要初始化,要從session檔案中反序列化session內容,所以session_start的作用就是把之前儲存的檔案內容反序列化。 session_start序列化之前要知道session_id,如果沒有就產生一個新的session_id。如果有就反序列化對應文件的內容。
以上是php怎麼設定session id的詳細內容。更多資訊請關注PHP中文網其他相關文章!