php session跳轉失效怎麼辦

2020-08-10 12:01:10

php session跳轉失效的解決不過:1、檢視「session.save_path」的存取許可權並進行修改;2、修改「session.use_trans_sid」和「session.use_only_cookies」的設定問題。

推薦:《》

一般出現跨頁面session失效的情況,基本都跟php的設定有關:

1、session.save_path存取許可權不夠,或者路徑有問題;

2、session.use_trans_sid和session.use_only_cookies的設定問題。

檢視php.ini:

發現路徑正常,而且檔案中也準確記錄着session值,因此session.save_path沒問題。

接着檢視session.use_trans_sid,發現:

解釋一下,session的傳遞有兩種方式,一種是基於cookie傳遞,另一種是基於URL傳遞。

cookie傳遞即通過cookie將session資訊儲存在用戶端,之後在向伺服器發送請求時會自動帶上cookie資訊,以便伺服器讀取。這是常用的方式。

URL傳遞是在點選跳轉的鏈接後自動新增session資訊,如a.php?sessid=...,之後在新頁面自動$_GET['sessid']來讀取。這個過程是自動且隱藏的,跟用cookie傳遞一樣不知不覺。

session.use_trans_sid表示是否使用URL方式傳遞session,所以如果session.use_trans_sid值爲0,而使用者瀏覽器又禁用了cookie,就會出現session跨頁面失效的情況。

但將session.use_trans_sid設爲1後,session還是失效,就要檢查session.use_only_cookies,發現:

session.use_only_cookies表示是否只用cookie傳遞session,所以如果設定爲1,即使session.use_trans_sid=1,也還是不會用到URL傳遞。

因此要將session.use_trans_sid=1,session.use_only_cookies=0,才能 纔能開啓URL傳遞方式。

以上就是php session跳轉失效怎麼辦的詳細內容,更多請關注php中文網其它相關文章!