• 締切済み

自動ログアウト

ログインページを作っていまして、時間が経つと自動的にログアウトするようなページを考えています。 セッションのタイムアウト時間の変更はini_set関数でsession.gc_maxlifetimeの値を変更すればいいことがわかりましたが、上手く動作しません。 他に何か設定しなければいけないのでしょうか。 よろしくお願いします。 //テストのため、10秒後にタイムアウト ini_set("session.gc_maxlifetime","10");          ・          ・          ・ session_start();

みんなの回答

  • foreach
  • ベストアンサー率51% (43/84)
回答No.1

まず、上手く動作しないというのは、どういう風に上手くいかないのか書かないと第三者には分かりません。 なので、アドバイス程度しか出来ませんが、 session_start()前にini_setしているので書式はそれであっていると思います。 その10秒をもう少し余裕を持って30秒とかにしてもダメですか? また、session.gc_maxlifetimeはPHP_INI_ALLなので.htaccessでも設定が可能です。 php_value session.gc_maxlifetime *秒数* の書式で.htaccessを作成してアップしたら上手くいくかもしれません。 ただし.htaccessはサーバー環境に依存しますので、今回の稼働環境がレンタルサーバーだったとしてエラーが出たとしたら、そのサーバーでは使えないと思ったほうがいいかもしれません。

mura1905
質問者

お礼

セッション情報は、ただ放置しているだけは破棄されないことを知りませんでした。 新しくブラウザを立ち上げて、セッションを始動させると、古いセッション情報は設定した時間通りに破棄されました。 どうもありがとうございました。

mura1905
質問者

補足

回答ありがとうございます。 session.gc_maxlifetimeを30秒にしたり、.htaccessを作成しても設定した時間でログアウトできませんでした。 (.htaccessは作ったことないので、内容が合っているのかどうかわかりません) #.htaccessの内容 <IfModule mod_php4.c> php_value session.gc_maxlifetime "30" php_value session.gc_probability "100" </IfModule> php.iniで直接設定を変更しても、時間通りにログアウトできませんでした。C:\tmpにセッション情報が残ったままでした。 なにか根本的にやり方が間違っているのでしょうか。

関連するQ&A

専門家に質問してみよう