PHP:子目录之间的会话cookie问题

时间:2016-07-01 22:24:23

标签: php session cookies shared-hosting

我的问题是为同一个用户和浏览器/标签生成多个会话cookie。

我有一个init.php文件,这是唯一负责启动会话的文件,所述文件的前几行如下所示:

<?php
    session_start();
...
...?>

此文件位于/include/init.php,该文件本身位于子目录中。

然后我有一个位于/include/phpjson/memberInfo.php的另一个php文件。

与所有其他文件一样,此文件包含init.php文件。但是一旦执行此文件,另一个会话cookie就会显示在tmp目录中。

问题不仅在于创建了另一个会话cookie,而且我现在位于root的主页现在似乎使用的会话与位于任何子目录中的会话不同。

在Google上搜索stackoverflow和其他网站后,我发现有些人建议使用 session_set_cookie_params 功能来设置会话cookie的路径。但是,由于所有会话cookie都已在同一个文件夹中,因此没有任何效果。

我知道包含init.php的文件将从文件本身运行包含代码,而不是从init.php最初所在的位置运行。这解释了为什么root中的所有文件似乎都在共享同一个会话。

这里的简单解决方案是将每个php脚本放在根目录中,但这似乎不是正确的做法。

如果对此问题有任何疑问,请在评论中提问。我会尽快回复他们。

提前致谢:)

此致 丹尼尔霍尔斯特

0 个答案:

没有答案