Zend Framework - Zend_Session 奇怪的行为

发布于 2024-10-20 20:00:23 字数 512 浏览 2 评论 0原文

我刚刚按照网站上的官方文档学习 Zend Framework。

但我被 Zend_Session 的一个奇怪行为所困扰:当用户通过身份验证时,浏览应用程序页面 - 一切都很好,但是如果他快速刷新浏览器页面(按 F5 或工具栏中的按钮),或者即使某些 AJAX php 文件(使用会话)被多次请求, - 会话突然过期(用户未经身份验证,但 cookie 过期日期相同)。

不过,我没有在我的应用程序中使用 ACL 和 MVC 结构。

所以它可以工作,而且非常简单,但是当页面刷新很快时就会失败。我也不知道为什么,但会在 /home/user/sessions/ 中为用户访问的每个页面创建一个单独的 cookie 文件。

这里有一个类似的问题 zend 会话刷新多次后就会过期 但提供的解决方案对我没有帮助:(

I'm just learning Zend Framework following it's official documentation at the website.

But I'm stucked with a strange behavior of Zend_Session: when user is authenticated, surfing the application pages - everything is ok but if he refresh the browser page quickly (pressing F5 or button in the toolbar) or even if some AJAX php file (that uses session) is requested multiple times, - the session suddenly expires (user is unauthenticated, however cookies expire dates are the same).

Though, I'm not using ACL and MVC structure in my application.

So it works and it is very simple but fails when page is refreshed quickly. Also I don't know why but a separate cookie file is created in /home/user/sessions/ for each page user has visited.

There is a similiar question here
zend session expires when refreshed many times
but the solution provided doesn't help me :(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

对你再特殊 2024-10-27 20:00:23

在您的配置中,您应该设置如下内容:

;; ========================= Session ===========================================
resources.session.save_path = APPLICATION_PATH "/../data/session"
resources.session.name = "SESSION"
resources.session.gc_maxlifetime =  5184000
resources.session.gc_probability = 1
resources.session.gc_divisor = 1000
resources.session.remember_me_seconds = 5184000
resources.session.cookie_lifetime = 5184000

这样就可以了。

In you config, you should set up something like this:

;; ========================= Session ===========================================
resources.session.save_path = APPLICATION_PATH "/../data/session"
resources.session.name = "SESSION"
resources.session.gc_maxlifetime =  5184000
resources.session.gc_probability = 1
resources.session.gc_divisor = 1000
resources.session.remember_me_seconds = 5184000
resources.session.cookie_lifetime = 5184000

That should do it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文