0

私はrememberMe()関数を取得して、ユーザーを記憶し、一度に数か月間セッションを保持しようとしています。

RememberMe()を介して値を渡すと、セッションがすでに開始されている場合は機能しないことを読みました。PHPマニュアルのsession_set_cookie_params()のドキュメントから、「すべてのリクエストに対して、session_start()が呼び出される前にsession_set_cookie_params(を呼び出す必要があります。」

私が思っていたように、ブートストラップでZend_session :: start()を呼び出しています。私の問題は、rememberMe()が機能していないように見えることです。

session_get_cookie_params();を呼び出すと 私は得る:

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

何かご意見は?

4

2 に答える 2

1

私は問題を解決しました。セッションは、24分ごと​​にセッションを期限切れにする同じサーバー上の別のWebサイトによって消去されていました。これを修正するには、session.save_pathを新しいフォルダーに設定します。また、session.gc_maxlifetimeとsession.cookie_lifetimeを非常に大きな数値に設定しました。

問題が解決しました!

于 2009-11-06T15:38:16.083 に答える
0

start()メソッドは使用しないでください。MVCを使用している場合は、正常に機能するはずです。session_startは、出力を送信する前に呼び出す必要があります。これは、応答を送信する直前です(outputbufferingのため)。セッションは、最初のZend_Session_namespaceの使用時に自動的に開始されます。

于 2009-10-27T21:54:52.313 に答える