0

更新しました

だから私はほとんど同じことだと思う別の問題に遭遇しています。私は silex を使用しており、セッションを 5 日間保存したいと考えています。次の値を指定します。

session.cookie_lifetime: 432000
session.gc_maxlifetime: 432000
session.gc_probability: 100
session.gc_divisor: 100

したがって、私の理解では、確率と除数は同じ数であるため、ページが読み込まれるたびに gc が発生し、セッション ファイル (セッションに PHP ネイティブ ファイル ハンドラーを使用) が 432000 (60 * 60 * 24 * 5) 秒間維持される必要があります。それらの活動。この問題はこれらの値にも当てはまります。私のセッションは、1 ~ 2 時間アクティビティがないと期限切れになるようです。

gc_maxlifetime を 5 に設定しようとしたところ、問題なく動作しているように見えたので、gc_maxlifetime の前に別の何かがトリガーされていると思われます。

不足している他の値はありますか?

4

2 に答える 2

0

サーバーは、古いセッションをいつクリアするかを決定します。

これは、乱数と (php.ini で) 与えた確率に応じて、特定の時間に発生します。

session.gc_divisor を探します。

したがって、あなたの状況では、PHPSESSID を持つ Cookie はまだそこにあり、ブラウザはそれをサーバーに送信する必要がありますが、サーバーは対応するセッションを見つけることができません。

于 2012-10-09T14:47:24.580 に答える
0

また、php.ini でさらにいくつかの変数を変更する必要があります。このリンクを確認してください。

于 2012-10-09T14:51:34.117 に答える