2011-01-28 31 views
3

私は、30分の非アクティブが破棄された後、または23.4時間が破棄された後にセッションを終了しました。PHPセッションの有効期限

問題は、アクティビティに関係なく、セッションが30分後に破棄されます。したがって、ユーザーが23.4時間以内に常にアクティブになっている場合、セッションはそれらの23.4時間にわたって維持され、その後ユーザーを強制的に再度ログインさせる必要がありますが、ユーザーは30分間にわたって常にアクティブであっても30分後に破棄されます。

ガベージコレクタはアクセスされた時刻ではなく、変更された時刻を参照するため、セッションが更新されているため、ユーザーがサイト上で何か操作を行ったときに変更された時刻が更新されます。あなたは私に知らせてセッションのini設定の他が必要な場合は

Directive     Local Value  Master Value 
session.cache_expire  30    30 
session.cookie_lifetime  1800   1800 
session.gc_divisor   1000   1000 
session.gc_maxlifetime  84400   84400 
session.gc_probability  1    1 
session.save_handler  files   files 

は、ここでのphp.iniセッション設定です。

これについてのお手伝いがあれば幸いです。

おかげ

+0

両方のオプションは、この他のStackOverflowの質問にどのように動作するかの偉大な説明があります:http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after- 30分 – Merijn

答えて

3

session.cookie_lifetimeを30分に設定されているので、クッキーは、30分後に期限切れになります(30分が経過した後に)、それは次のリクエストでサーバーに送信されwhont、およびPHPは別のセッションを発行します。彼/彼女(php)は要求にそれを覚えていなかったからです。

+0

サーバーへの各要求でCookieは更新されませんか? – Nalum

+0

はい、セッションCookieはリクエストごとに再送信されます。 – arnaud576875

+0

大丈夫、私は短いテストをして、あなたが正しい場合は、答えを削除します。 –

0
  1. セッションのデフォルト設定には触れないでください。デフォルト値のままにします。

  2. セッション自体を使用してセッションの有効期間を確認します。

関連する問題