我的会话似乎仅在当前窗口/标签有效。此外,它似乎很快就超时。继承人如何我目前试图做到这一点:

这是在我的登录控制器:

$adapter = $this->getAuthAdapter($data);
$auth    = Zend_Auth::getInstance();
$result  = $auth->authenticate($adapter);

if (!$result->isValid()) {
    $this->view->err = "Invalid username or password.<br/>Please try again.";
    return $this->render('index'); // re-render the login form
}

Zend_Session::rememberMe(60*60*24*7*4);

这是在我的自举:

Zend_Session::start();

我是比较新的一些这方面的东西,所以多多包涵!任何帮助,将不胜感激。

有帮助吗?

解决方案

下面是发生了什么事。这个网站是服务器与服务器上的其他网站共享会话文件夹。虽然我的ini_set增加会话有效期,我的会话仍然被其他应用程序中删除。

要解决这个我简单集合的session.save_path到一个新的文件夹。问题解决!

其他提示

我只想补充一点,你改变了session.save_path的与后续行的.htaccess,使其工作。我看到了答案以为我改变了它在.ini,但它是在.htaccess。

例如:

php_value session.save_path /home/kaos/data/sessions/

通过源为Zend_Session寻找,了rememberMe()方法调用rememberUntil(),它调用内置在PHP方法session_set_cookie_params()

所以,你不妨检查一下你的php.ini值 session.cookie_lifetime 。如果它不是0,除非值小于的 session.cookie_lifetime ,然后由Zend_Session :: rememberMe()方法将是无用的。在这种情况下,你会想要将它设置为0或者php.ini文件或应用程序中使用的ini_set()在上的 session.cookie_lifetime人页

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