[英]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.