Silverstripe会话不会持久,除非/ admin访问

时间:2016-06-16 03:24:44

标签: silverstripe

要复制:

全新安装。将以下内容放在Page :: init()。

var_dump(Session::get_all()); Session::set('testVariable', 'testValue');

访问网站上的页面,无需登录,也无需访问/ admin。

此预期结果(在加载页面两次之后)将看到包含testVariable => testValue的会话数据转储

相反,似乎存储在会话中的任何数据都不会在请求之间保留。除非访问过/ admin。访问/ admin,然后再次检查...

当访问/ admin时会发生一些事情,会议将会话持续存在。

这在所有托管环境中似乎都不是问题...但是,我们测试过的3/4确实存在这个问题。其中两个运行PHP 5.4,另外两个运行PHP 5.6。

这似乎不是特定于任何SS版本的问题,我们已经测试过3.0.5,3.2,3.4.0

我已经在github上提交了一个issue反对silverstripe框架,但任何见解都很有价值,因为我们有一个网站在野外被打破,因为这个,任何线索/修复/补丁/黑客/解决方法会很棒。

2 个答案:

答案 0 :(得分:1)

添加Session :: start();在其他会话调用之前。

答案 1 :(得分:0)

Session::save()后尝试Session::set()