我可以看到重定向时会话重置的问题可以在不同论坛和问答站点的多个帖子中找到。
提出的解决方案都没有解决我的问题。问题是用户会话数据在重定向后被清除(使用window.location.href = SOME_PLACE
(。
我正在运行带有PHP 7.2.3和CI 3.0.6的XAMPP。
我尝试过:
- 将 CI 升级到 3.1.9
- 使用
localhost
的值来cookie_domain
。 - 已确保会话库已自动加载。(尝试在我需要的控制器构造函数中手动加载它(
- 为
sess_save_path
增加了价值,并确保它可由进程所有者写入(实际上,我查看了生成的文件(。 - 尝试了Google Chrome和Mozilla Firefox。
我错过了什么?请帮助我调查这个问题并深入了解它。这真的很令人沮丧。
找到了我问题的解决方案。不过有点奇怪。
就我而言,问题是会话到期日期始终是当前计算机时间。因此,它在创建后立即被清除。
解决方案是将sess_expiration
设置为0
(关闭浏览器时清除会话(。这是在application/config/config.php
中完成的:
$config['sess_expiration'] = 0;
更新
将 CI 降级回 3.0.6 后,用户会话数据将重置。再次升级到 3.1.9,一切又开始工作了。因此,除了上面的配置更改外,升级到 3.1.9 也是解决方案的一部分。