首頁 >後端開發 >PHP問題 >php怎麼設定session id

php怎麼設定session id

藏色散人
藏色散人原創
2021-03-22 09:10:023635瀏覽

php設定session id的方法:先建立一個PHP範例檔案;然後透過「session_id("...");session_start();」語句來設定Session會話ID即可。

php怎麼設定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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn