php - 来自另一个页面的会话变量在子域上不可见
问题描述
登录.php
session_start();
$_SESSION['aid'] = 1;
echo $_SESSION['aid']; // 1
然后index.php
session_start();
echo $_SESSION['aid']; // nothing is echoed
$_SESSION['test'] = 323;
echo $_SESSION['test']; // 323
错误日志
PHP Notice: Undefined index: aid in...
这只发生在我的子域
上 - 主域上的 admin.example.com - example.com - 一切正常,这也只发生
在我的本地主机
上的远程服务器上 - - 没关系xampp, win7, chrome
有什么帮助吗?
解决方案
您应该在开始会话之前将 cookie 域设置为“.example.com”(在所有子域上的所有脚本上,否则 cookie 甚至在不同的(子)域上都无效。
session.cookie_domain = ".example.com"
或使用session_set_cookie_params():
session_set_cookie_params(0, '/', '.example.com');
session_start();
另请参阅此问题: 允许 php 会话转移到子域
推荐阅读
- javascript - 如何使用 js 或 jquery 以编程方式按下任何键盘键?
- php - 我想为显示的每个项目创建一个增量编号
- regex - 正则表达式匹配字符串#substring
- rocket-chip - 你能合成RSICV火箭芯片测试工具模块吗?
- rabbitmq - Masstransit:PublishFault context.Message 在无法访问代理时为空
- flutter - 如何在 Flutter 中使用 StreamBuilder 连接到等待状态
- reactjs - this.props.history.push 在 React-Router 中未定义
- reactjs - 反应输入 - 光标跳转到末尾
- manifest - 在 google-repo 清单中使用环境变量?
- configuration - 在本地初始化中包含全局 .ocamlinit