首页  >  问答  >  正文

PHP 会话已创建但返回 NULL

我认为这是 /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-

造成任何安全或其他功能问题吗?

P粉573809727P粉573809727210 天前314

全部回复(1)我来回复

  • P粉665427988

    P粉6654279882024-02-26 10:16:53

    我认为这会解决您的问题

    然后

    回复
    0
  • 取消回复