我的网络空间Folder1
和Folder2
上有两个文件夹。这两个文件夹都有 PHP 内容。在Folder1
index.php
中,我正在设置一个会话变量,我想在Folder2
中知道它。我已经在寻找解决方案,我也发现了一些session_set_cookie_params()
的东西 - 但它不起作用。以下是我正在使用的文件:
<?php
// index.php inside /blog/Folder1/
session_name('s');
session_set_cookie_params(0, '/', 'www.mydomain.de');
session_cache_limiter('private_no_expire');
session_start();
$_SESSION['auth_key'] = 'abc';
echo 'Key assigned';
?>
我的第二个文件正在尝试访问已经设置的会话变量:
<?php
// index.php inside /blog/Folder2/
session_name('s');
session_set_cookie_params(0, '/', 'www.mydomain.de');
session_cache_limiter('private_no_expire');
session_start();
if($_SESSION['auth_key'] != 'abc')
{
header('HTTP/1.0 404 Not Found');
exit;
}
// do more stuff ...
?>
我做错了什么?
你的php没有错,但要调试它,你需要理解这一点,出于安全原因,http不会为顶级域设置cookie,因此你需要使用二级域名,如下所示:
session_set_cookie_params(0, '/', '.mydomain.de');
你注意到我用.mydomain.de
替换了www.mydomain.de
多一点
确保已设置域,如果没有,您仍然可以使用session_set_cookie_params(0, '/');
而无需指示子域索引。