2012-04-16 4 views
0

Catalystアプリケーションのセッションプラグイン(Catalyst :: Plugin :: Session)が期限切れになるように設定すると、フラッシュデータと同期してしまうことがわかりました。具体的には、私はフラッシュデータがもはや新しい要求を持ち越さないことを発見しています。Perl触媒;セッションの有効期限とフラッシュの動作を設定する

これは正常ですか?どのように私はこれに対処することができますか?

+0

はあなたが私達にあなたの構成を示してもらえ。 – dgw

答えて

2

あなたはオプションとしてflash_to_stashを追加する必要があります:

<session> 
    dbi_dbh   DB 
    dbi_table   sessions 
    dbi_id_field  id 
    dbi_data_field  session_data 
    dbi_expires_field expires 
    flash_to_stash  1 
    expires   3600 
</session> 
+0

ええ、セッションを誤って設定しました。ありがとうございました。 – s2cuts

4

完全に正常です。セッションの全ポイントは、1つの要求のデータを別の要求のデータと関連付けることができるようにすることです。リクエストの有効期限が切れたときにセッションを終了させると、そのリクエストのデータは今後のリクエストとは関係ありません。

具体的には、フラッシュデータはセッションデータの一部です。たとえば、Catalyst/Plugin/Session.pmファイルの_save_flashメソッドを参照してください。 big warning for the delete_session method

注:この方法でもフラッシュデータが削除されます。

対処方法Sessionプラグイン以外のスキームを使用してリクエストからデータを保持する必要があります。アプリの詳細、永続化しようとしているデータ、古いセッションのデータを新しいリクエストにどのように関連付けるのか、私はそれ以上の具体的な推奨をすることはできませんでした。データベースバックエンドとの例のセッションを設定する場合

関連する問題