セッションタイムアウトしない・・・

| コメント(0)
デフォルトのセッションパスを使用するとどういうわけか動作が不安定になるので
(レンタルサーバー会社に連絡してサーバーの再起動をしてもらうと直るのだが・・・面倒!)
パスを変えて使ってみると安定した。

ただひとつ問題が・・・
セッションタイムアウトしない!

php.iniもいじれず・・・

session_cache_expire()を使ってもタイムアウトせず・・・

困ったなーと思っていたが何とか解決しました。

結局、セッションファイルをチェックして一定時間が経過したら削除するという
ちょっと強引な方法で今のところ問題なく動作しています。

filemtime関数でファイルの更新時刻を取得し
指定した時間が経過したら削除するという方法で。
session_start() をするとこの更新時刻は更新されるため
使っている間は削除されないということになります。

使用方法はページを移動するたびにタイムアウト関数を走らせています。
※ session_start() よりも前に書きます。


以下の例ではタイムアウトの時間は10分に設定しています。

参考にしたページはこちら
http://www.phppro.jp/qa/449

// =========================================================
// セッションのタイムアウト制御
// =========================================================
function session_timeout() {
    //セッション有効時間(秒)
    $KeepAliveTime = 600;
    //セッションデータパス
    $sesspath = session_save_path();
     
    //タイムアウトしたセッションデータを検索&削除
    foreach (glob("$sesspath/sess_*") as $fname) {
        if(filemtime($fname) + $KeepAliveTime < time()) {
            @unlink($fname);
        }//end if
    }//end foreach
}//end function

コメントする

ウェブページ

★過去に製作したウェブサイト(一部紹介)
イビキノン
いびきでよく眠れない方のサプリ
日本トレーラーハウス協会
トレーラーハウスの協会(JTHA)
トレーラーハウスデベロップメント
トレーラーハウスの製造・販売 シュミレーションゴルフのレンタル スクリーンゴルフのレンタル
健楽ショップ 【ボイスリッチEX】
声が出にくい症状の方に朗報
早稲田大学 スキー部
2007年 インカレ総合優勝!
NPO体験学習支援センター
ブナの植林100年計画実行中
AJC油汚染研究所
油ゲル化剤オイルフェンスの販売
ジャズシンガー 奥土居美可
NYで絶賛されたジャズボーカル