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);

アプリケーションは正常に認証されますが、セッションファイルはAPPLICATION_PATH "/../data/session/"ではなく、de/tmpフォルダーに保存されたままです。

/ data/sessionフォルダーにはchmod777があります。

私がここで欠けているものは何ですか?

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 に答える