繁体   English   中英

PHP 会话返回 NULL 但会话已创建

[英]PHP session returns NULL but session has been created

我认为这是 /tmp 上的权限问题,但我似乎找不到解决方案。

我正在使用 PHP 创建注册和登录页面; 我可以看到,当用户登录时,会话数据被传递到 /tmp 文件夹,但是当他们被重定向到主页/索引页面时,会话数据返回 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-

创建任何安全或其他功能问题?

Every File中,如果要在该文件中使用会话,则必须启动会话

请尝试使用 -

<?php
session_start();
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!'; 
}
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM