PHP問題 —— 丟失SESSION

1.1  丟失SESSION

1.1.1  現象

從PHP 5.5.9升級到PHP 5.5.12,應用執行登陸操做後,後續頁面沒有記住登陸成功的狀態。服務器

1.1.2  緣由

通過跟蹤代碼,發現登陸成功後已經將狀態信息寫入Session,可是頁面重定向到首頁後,Session不見了,致使後臺覺得是未登陸用戶訪問。session

Session爲何會不見?網上給出若干方法,可是仔細分析後均不適用本案例。由於一樣的代碼,在其它服務器上運行就是正常的,只有在本地升級後的服務器上不正常,所以應該是PHP升級致使。ide

從其它服務器上拷貝一份PHP.INI文件與本機的進行對比,發現以下參數:spa

session.save_path = "D:/PHPDevEnv/PHP 5.5.9/temp"ci

紅色部分配置就是問題的關鍵所在。原來使用PHP 5.5.9時,PHP的目錄名稱中包含了版本號,後來升級到PHP 5.5.12,考慮到之後還有可能升級PHP,目錄名稱中帶有版本號不利於後續升級,因而將目錄中的版本號去掉了,同時修改了配置文件中的若干相關配置,可是沒有完整搜索PHP 5.5.9這個字符串,致使上述參數沒有修改。因而PHP在保存Session的時候就找不到路徑。字符串

1.1.3  解決

將上述參數修改成一個實際存在的路徑,重啓Apache服務器便可。it

相關文章
相關標籤/搜索