回答編集履歴

1

cookie_lifetime

2019/06/20 09:48

投稿

hide0128
hide0128

スコア245

test CHANGED
@@ -7,3 +7,35 @@
7
7
 
8
8
 
9
9
  そもそもプログラム側でセッション時間比較せずとも、セッション有効期間の設定でセッション値が取れなくなるので不要です。
10
+
11
+ 画面を最初に開いた時からの経過時間を制限したい場合は、クッキーの有効期間で制御します。
12
+
13
+
14
+
15
+ session.cookie_lifetime
16
+
17
+ ブラウザにセッションIDのCookieを発行する際のCookieの有効期限。
18
+
19
+ ブラウザはこの期限を過ぎるとCookieを破棄するので、結果としてセッションが途切れることになる。
20
+
21
+ デフォルトは0で"ブラウザを閉じるまで"という意味。
22
+
23
+
24
+
25
+ session.gc_maxlifetime
26
+
27
+ サーバに保存されているセッションファイルを保護する有効期限。
28
+
29
+ セッションデータそのものの有効期限ではないし、そのような設定項目はない。
30
+
31
+ **リロードされないまま**有効期限を過ぎたら、その後セッションファイルが削除される可能性がある。
32
+
33
+
34
+
35
+ session.gc_divisor
36
+
37
+ session.gc_maxlifetimeを過ぎると必ずセッションファイルが削除されるわけではなく、PHPにリクエストがあったときに(session.gc_probability / session.gc_divisor)の確率でGCが起動して実際に削除される。
38
+
39
+ セッションファイルそのものには有効期限は書かれていないため、session.gc_maxlifetimeを過ぎてもGC起動前であればセッションデータにアクセス可能。
40
+
41
+ デフォルトはsession.gc_probability=1、session.gc_divisor=100で、1%の確率でGCが起動する。