我認為這是 /tmp 上的權限問題,但我似乎找不到解決方案。
我正在使用PHP 建立一個註冊和登入頁面;我可以看到,當使用者登入時,會話資料被傳遞到/tmp 資料夾,但是當他們重定向到home/index 頁面時,會話資料傳回NULL 。
我使用以下內容來驗證正確的路徑是否具有權限:
<?php var_dump($_SESSION); if (!is_writable(session_save_path())) { echo 'Session path "'.session_save_path().'" is not writable for PHP!'; } else { echo 'Session path "'.session_save_path().'" is writable for PHP!'; } ?>
我最終得到:
NULL Session path "/var/lib/php/sessions" is writable for PHP!
檢查資料夾,我可以看到會話資料保存到 /tmp,因此它肯定是可寫入的。
所以我最好的猜測是 start_session() 有寫入 /tmp 的權限,但沒有讀取的權限?但這對我來說沒有任何意義。
檢查我得到的 var/lib/php/sessions 中的權限(範例):
drwx-wx-wt 2 root root 151552 Dec 22 05:09
將資料夾的權限變更為:
-rw-rw-rw-
造成任何安全或其他功能問題嗎?
我認為這會解決您的問題
然後