我希望能夠捕獲PHP中創建會話時的錯誤。我的主要目標是能夠知道導致問題的原因。是否因爲我們沒有權限訪問寫入會話的文件夾,或者因爲我們沒有可用磁盤空間。在PHP中捕獲會話創建錯誤
所以我們當然會從這開始。
session_start();
,並從這個職位Check if session is set or not, and if not create one?我也嘗試添加
if(session_id() == '')
{
// session has NOT been started
session_start();
echo "Session is started";
}
else
{
// session has been started
}
,並通過使用此命令
測試這個我已經刪除在/ tmp /爲組寫權限和其他chmod 755 tmp/
但基於我的測試,我仍然看到會話是開始d。有趣的是我可以登錄,但是當我嘗試註銷時,我無法登錄。
關於如何正確獲取會話創建錯誤的原因的任何見解都會大大增強。謝謝!
編輯:
我已經試過弗雷德裏克的建議,並做到了這一點。
try{
// Start session
session_start();
echo "Session started. " . session_id();
}catch(Exception $e){
echo "Session not started. " . $e->getMessage();
}
但我還是看到這個
會議開始。 fa505cbf4b232773669008495fd08b9f
即使我已經刪除了對/ tmp的寫入權限。看起來try try無法正確地解決問題。
在更改寫入權限之前會話是否存在?當你試圖註銷時,你沒有權限? –
我確實通過退出權限來刪除會話。我也在/ tmp /中刪除會話文件以確保。 我遇到了無法退出寫入權限時無法註銷的情況。 – rccoros
好吧,要獲得異常消息,我將使用try catch塊並打印錯誤。這裏是更多關於例外handeling:http://www.w3schools.com/php/php_exception.asp –