我认为这是 /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-
造成任何安全或其他功能问题吗?
我认为这会解决您的问题
然后