【问题标题】:Read session from parent directory从父目录读取会话
【发布时间】:2013-12-09 04:11:44
【问题描述】:

http://myDomain.com/directory_1/index.php 中,我使用session_start() 创建了一个会话。

然后,在http://myDomain.com/directory_2/index.php 中,我使用session_start() 创建了一个会话。

现在,在http://myDomain.com/index.php,我想访问与任何子目录关联的所有会话。

这是怎么做到的?

编辑 不好意思,我原来是在directory_1/index.php和directory_2/index.php中创建会话时才意识到,我是这样做的:

$cookie_domain=$_SERVER['HTTP_HOST'];
if (substr($cookie_domain, 0, strlen('www.')) == 'www.') {$cookie_domain = substr($cookie_domain, strlen('www.'), strlen($cookie_domain) );} //remove leading www (if exists)
$cookie_domain='.'.$cookie_domain;    //Add . wildcard
$cookie_path=dirname($_SERVER['PHP_SELF']).'/';
session_set_cookie_params(0, $cookie_path,$cookie_domain);
session_start();

【问题讨论】:

  • 使用 session_start(),因为在使用会话变量的每个页面上都需要这样做(无论它们是在站点内的哪个位置创建的)。

标签: php http session cookies


【解决方案1】:

你只需要添加:

session_start()

在您的页面顶部(index.php),然后您将能够访问在任何地方(外部目录)声明的$_SESSION 变量。

【讨论】:

    【解决方案2】:

    会话 cookie 的默认路径是 /,因此(除非您已更改此设置)通过将 session_start() 放在 /index.php 的顶部,无论目录如何,您都可以访问同一会话。

    【讨论】:

    • 你的声明“除非你改变了这个”似乎是我的问题。
    猜你喜欢
    • 1970-01-01
    • 2012-12-25
    • 2012-11-25
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多