在同一服务器上的两个不同文件夹上使用相同的PHP会话

时间:2016-01-23 12:30:02

标签: php session

我的网站空间Folder1Folder2上有两个文件夹。两个文件夹都包含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 ...

?>

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的php没有任何问题,但要调试这个,您需要了解这一点,出于安全原因,http不会为顶级域设置cookie,因此您需要使用二级域,如下所示:

session_set_cookie_params(0, '/', '.mydomain.de');

您注意到我已将www.mydomain.de替换为.mydomain.de

多一点

确保您已设置域名,如果不是,您仍然可以使用session_set_cookie_params(0, '/');而不指明子域索引。