【问题标题】:PHP session for domain and sub domains域和子域的 PHP 会话
【发布时间】:2013-08-27 21:45:29
【问题描述】:

这是我在基于 PHP 的 webapp 中启动会话的代码

session_set_cookie_params(24*60*60, "/", ".exdomain.com");
session_start();

我想要的是在所有子域之间保持相同的会话说:

www.exdomain.com 
ajax.exdomain.com

这里是子域

ajax.exdomain.com

用于服务用户的ajax请求现在发生了什么,用户通过www.exdomain.com登录时 一个新的 PHPSESSID="91252ec9310ae1c80f44c7e885cf7dfe" 从萤火虫创建 PHPSESSID cookie 设置如下:

PHPSESSID=91252ec9310ae1c80f44c7e885cf7dfe | .exdomain.com | 41乙| / | 2013 年 8 月 29 日上午 03:02:09

现在,当通过 ajax 子域(即 ajax.exdomain.com)发出请求时,正在为此请求创建一个新会话,实际上为每个 ajax 请求创建一个新的 PHPSESSID。 如何防止ajax请求新会话的形成。

【问题讨论】:

  • 您是否为两个子域配置了相同的session_set_cookie_params()?换句话说,ajax.exdomain.com 是否知道也使用.exdomain.com 作为会话 cookie 的域?
  • 两者都使用相同的文件/功能进行登录验证/会话管理。
  • 检查this question它可能对你有帮助。

标签: php session session-cookies


【解决方案1】:

您需要在.htaccess 或php.ini 中设置会话域

php_value session.cookie_domain ".exdomain.com"

【讨论】:

    猜你喜欢
    • 2020-12-02
    • 2012-06-25
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多