我有一个名为System子目录的主目录Subsystem.我在主目录中的会话在子目录中不起作用.
当我echo session_save_path();在两个文件夹中时,他们会告诉我"/tmp".
然后,我试图放入session_save_path("../tmp");我的子目录,但它显示了我"This webpage has a redirect loop".
session.php在System目录中:
<?php
session_start( );
if (!($_SESSION['uid']))
{
header("Location:index.php");
}
else
{
$_SESSION['uid'] = $_SESSION['uid'];
}
?>
Run Code Online (Sandbox Code Playgroud)
子系统文件夹中的session.php:
<?php
session_save_path("../tmp");
session_start( );
if (!($_SESSION['uid']))
{
header("Location:index.php");
}
else
{
$_SESSION['uid'] = $_SESSION['uid'];
}
Run Code Online (Sandbox Code Playgroud)
?>
我已经谷歌搜索了所有,但我仍然无法让它工作.
该目录不会影响您的会话状态(给定 Apache-PHP 网站的所有目录都将在标准配置中访问相同的会话)。您不应该使用session_save_path().
我认为问题部分在于您将“uid”设置为自身($_SESSION['uid'] = $_SESSION['uid'];) - 因此可能永远不会真正将其设置为值 - 如果未设置,则可能会无限期地重定向。
我建议进行这个简单的测试,以确保您的会话确实有效:
/session_set.php
<?php
session_start();
$_SESSION['uid'] = 123;
Run Code Online (Sandbox Code Playgroud)
/sub_dir/session_get.php
<?php
session_start();
echo $_SESSION['uid'];
Run Code Online (Sandbox Code Playgroud)