[英]Zend Framework Sessions Being Lost
我正在使用会话将商品存储在购物车中。 我可以创建和持久化会话,但有一些奇怪的问题:
当我关闭Firefox中的选项卡 (而不是整个浏览器)时,会话似乎已丢失。 有时它不会发生但通常会发生。
每次刷新页面或转到另一页时,会话ID都会更改为新页面。 我通过浏览器和服务器上的cookie查看了这一点。 此外,服务器上一次最多存储4个会话。 这一切都是正常行为吗?
会议似乎随机丢失......可能是几分钟或一个多小时。
我只是按照Zend手册,但没有运气解决任何问题。 在bootstrap中我还有Session :: start()和Session :: rememberMe()。 我正在使用普通文件存储进行会话,只存储在/ var / lib / php5中,我认为这是Zend框架喜欢的地方。
谢谢你的任何指示
如果会话数据持久但ID正在改变,则有可能在某处调用session_regenerate_id() 。
检查PHP的垃圾清理时间 - session.gc_maxlifetime
。 如果它很短,它会从你的鼻子下面删除你的会话文件并使其显示为“随机”。
默认值为24分钟(1440秒)
这应该设置为(或大于)您的应用程序中设置的cookie生命周期( session.cookie_lifetime
)。
我以前遇到过这种情况,你会想要在这里开始你的会话,对我来说这是我的Bootstrap.php
if (!empty($_REQUEST['PHPSESSID'])) {
Zend_Session::setId($_REQUEST['PHPSESSID']);
}
Zend_Session::start();
这应该可以解决问题。 当用户有会话时,通常会在每次请求时传递。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.