PHP客戶端禁用cookie如何使用session
客戶端禁用cookie以後 session還是可以用,此時session的id值是基於cookie傳遞的,所以session就不能共享傳遞了,可以通過在url中附加PHPSESSID的值進行傳遞,這個就是session的id值。
禁用cookie,sessionid就不能直接傳遞了,因為http請求時sessionid就是放在cookie裡的。你說的通過url傳遞的,那是變通的方法,伺服器端通過session_id()函式可以獲知當前session的sessionid,然後在用php生成頁面的時候,把sessionid作為引數附加到url裡,確實可以實現在禁用cookie的情況下傳遞sessionid
第一種方式:
在每個超連結上新增一個PHPSESSID=$sid
//防止返回初始頁產生新的session
if(isset($_GET["PHPSESSID"])){
session_id($_GET["PHPSESSID"]);
}
session_start();
$sid=session_id();
//在每個連結上新增引數PHPSESSID=$sid
其他頁面的獲取方式為:
if(isset($_GET["PHPSESSID"])){
session_id($_GET["PHPSESSID"])
}
session_start();
第三種方式:
使用session.use_trans_sid
這種方式會在url上自動加上SID(href,location,action,注意:js跳轉不會新增上SID)
1、設定php.ini的session.use_trans_sid = 1或者開啟enable-trans-sid選項,讓PHP自動跨頁傳遞session id。
2、手動通過URL傳值、隱藏表單傳遞session id。
3、用檔案、資料庫等形式儲存session_id,在跨頁過程中手動呼叫。