#author("2022-06-15T08:08:43+00:00","default:admin","admin") #author("2022-06-15T08:14:27+00:00","default:admin","admin") -[[PHP $_SESSION(セッション変数)のすべて!【初心者向け基本】:https://wepicks.net/phpref-session/]] *保持期間 [#z5912fab] -[[PHPでセッションの長さを変更する:https://qiita.com/buntafujikawa/items/db3008bae3f7ce5d4c2a]] -[[[PHP]セッションの有効期限が切れてもセッションが消えるわけじゃない。:https://qiita.com/tkek321/items/5fe262e6e63644a58b76]] -[[PHPのセッションが勝手に消えてしまう問題と解決法:https://blitzgate.co.jp/blog/1946/]] -[[php – セッションのガーベッジコレクションと MySQL のあれこれ:https://dev.grimonet.com/php-session-gc-mysql/]] **php.ini 設定項目 [#rdcba15e] -[[PHPのセッション関連設定項目:https://qiita.com/rana_kualu/items/bc4dca39d133f53b8289]] ***session.gc_maxlifetime [#w4dc5311] -サーバに保存されているセッションファイルの保存期間 -default session.gc_maxlifetime = 1440 ***session.gc_probability [#g57901b0] ***session.gc_divisor [#pf7737b2] -session.gc_maxlifetimeを過ぎると必ずセッションファイルが削除されるわけではなく、PHPにリクエストがあったときに (session.gc_probability / session.gc_divisor) の確率でGCが起動して実際に削除される -セッションファイルそのものには有効期限は書かれていないため、session.gc_maxlifetimeを過ぎてもGC起動前であればセッションデータにアクセス可能 -デフォルトは session.gc_probability=1、session.gc_divisor=100 で、1%の確率でGCが起動する ***session.cookie_lifetime [#d1afc152] -ブラウザのクッキーの有効期間 -session.gc_maxlifetime のみ変更をしても、デフォルトだとブラウザを閉じたらセッションが破棄される -default ... 0:ブラウザが閉じられるまで session.cookie_lifetime = 0 ***session.use_cookies [#mad32b62] ***session.use_only_cookies [#c334eaed] -セッションの保存にCookieを使用するか。 -両方ともデフォルトは1で、0にしてはいけない -session.use_cookiesは「Cookieを使用してもいいか?」 -session.use_only_cookiesは「必ずCookieを使用するか?」 -session.use_only_cookies=0にすると、index.php?PHPSSID=hogeというURLでセッションIDが有効になり、容易にセッションハイジャックできてしまうため、0にしてはならない