PHP Session重新賦值失敗 - session_write_close 小坑記錄

場景:

操作1:在接口A對$_SESSION['key']賦值A,即$_SESSION['key']=A;

操作2:在接口B對$_SESSION['key']賦值B,即$_SESSION['key']=B,同時輸出$_SESSION['key']的值,結果爲B;

操作3:在接口C取出 $_SESSION['key'] 的值,結果爲A;

爲什麼呢?爲什麼呢?

作者百思不得其解。。。

以爲是什麼設置有問題導致的,上網找了一大堆資料,結果沒用。

然後再幾個小時後,發現框架裏有個坑。。。

即:在操作1和操作2之間,有段檢測入口的程序代碼,在檢測到接口不是A是,就關閉了session的寫功能,即調用了函數

session_write_clode();

這段代碼只有1行,且在文件前面不起眼的地方,於是乎作者忽略了。。

原來 session_write_close() 應該是爲了防止加載session阻塞了頁面或者是出於安全考慮防止session被非法修改,所以就關閉了session的寫入功能,但可以讀取。。。

好吧,就是這個session_write_close()導致的。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章