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