2

我希望你们能帮助我,

在我的 Zend 应用程序中,我将 Zend_Auth 会话文件设置为保存在特定文件夹中,因为我使用的是共享主机。显然我已经做好了一切,但问题是会话没有存储在我想要的文件夹中。

在 application.ini 我有:

resources.session.save_path = APPLICATION_PATH "/../data/session/"
resources.session.use_only_cookies = true

在引导程序中,我有:

protected function _initSessions() 
{
    $this->bootstrap('session');
}

认证方式

$adapter = $this->getAuthAdapter();
$adapter->setIdentity($userName)->setCredential($hPassword);

$auth = Zend_Auth::getInstance();
$result  = $auth->authenticate($adapter);
$user = $this->_userModel->getUserAuthData($userName);
$auth->getStorage()->write($user);

应用程序验证良好,但会话文件仍保存在 de /tmp 文件夹中,而不是 APPLICATION_PATH "/../data/session/" 中。

文件夹 /data/session 有 chmod 777。

我在这里缺少什么?

4

1 回答 1

2

在 Tim Fountain 询问(在问题的评论中)是否在引导程序中发生了任何其他与会话相关的功能之后,我决定检查引导程序之前发生了什么,并在 public/index.php 文件中找到了这一行。

Zend_Session::start();

就在 $application->bootstrap()->run() 之前。我删除了它并且它起作用了。

问题: Zend_Session::start() 创建会话文件时没有应用在 application.ini 中设置的任何配置(因为它在引导过程中运行)。

于 2012-05-29T17:47:20.933 回答