SESSION丟失意思是講在當前頁面的session是有值了,但到了另一個頁面session就沒有值了,這有違背了session的正常邏輯了,正常情況session是服務器全局變量是可以在當前域的任何頁面使用的,那現在這種問題是什么問題呢,下面我來給大家講一下。
問題分析研究
1、客戶端禁用了cookie
2、瀏覽器出現問題,暫時無法存取cookie
3、php.ini中的session.use_trans_sid = 0或者編譯時沒有打開--enable-trans-sid選項
實例分析
session_start()聲明后在另外一個頁面無法獲得剛才申明的session值。
打開phpinfo()查看了一下SESSION條發現這兩條估計是和我的情況符合要求。
找到/etc/php.ini文件把 www.111cn.net
session.use_trans_sid = 0 修改成了1
重啟服務 service httpd restart還是不行,于是仔細看了
session.save_path 它有兩個項 Local Value和Master Value
Local Value /var/lib/php/session
Master Value /tmp
我把這兩個目錄都設置權限chmod a+rwx /var/lib/php/session
chmod a+rwx /tmp
搞定,能傳遞了。
另外說一下,如果服務器不是自己的,那肯定無法修改權限了。
不過我的是自己的PC機,作為一個調試環境,還是希望大眾一些,所以就沒有考慮用session_id()來解決這個問題了
總結
1、設置php.ini中的session.use_trans_sid = 1或者編譯時打開打開了–enable-trans-sid選項,
讓PHP自動跨頁傳遞session id。
2、手動通過URL傳值、隱藏表單傳遞session id。
3、用文件、數據庫等形式保存session_id,在跨頁過程中手動調用。
新聞熱點
疑難解答