我正在尝试使用 rememberMe()功能来记住用户并一次保留几个月的会话。

我已经读过,如果你通过 rememberMe()传递一个值,那么如果会话已经启动,它将无效。从PHP手册中的 session_set_cookie_params()文档中,“您需要为每个请求调用 session_set_cookie_params(),并且在 session_start()之前称为QUOT;

我在我的引导程序中调用 Zend_session :: start(),因为我认为应该这样做。我的问题是 rememberMe()似乎无法正常工作。

当我致电 session_get_cookie_params(); 时,我得到:

Array([lifetime] => 0 [path] => / [domain] => [secure] => httponly] =>)

有什么想法吗?

有帮助吗?

解决方案

我已经解决了这个问题。会话被同一服务器上的另一个网站删除,该网站每24分钟到期一次。为了解决这个问题,我将session.save_path设置为一个新文件夹。我还将session.gc_maxlifetime和session.cookie_lifetime设置为非常大的数字。

问题解决了!

其他提示

不要使用start()方法。如果你使用MVC它应该工作正常。 session_start必须在发送任何输出之前调用,并且在发送响应之前是正确的(因为outputbuffering)。首次使用Zend_Session_namespace时会自动启动会话。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top