php‎ > ‎

タイムアウトを実装したい場合の時間計算について

ユーザーのセッション管理を自分でゴリゴリと記述している人も多いかと思う。また先人が作った製品のメンテナンスを余儀なくされている方も今では多いだろう。前回のアクセスから一定の時間がたった場合に特定の処理を行いたい場合の判断は以下のような方法で行える。

データベースのユーザー情報として最終アクセス時間(MySQLのDateTime型)を用意して、last_asscess(任意)というフィールド名にする。ユーザーがアクセスしてきたら必ずこのフィールドが更新されるようにしておく必要がある。

// タイムアウトまでの秒数
define('C_TIMEOUT', 5);
// 現在の時刻を取得する
$_d1=date('YmdHis');
// 前回アクセスした時間を取得する
$_d2=date('YmdHis', strtotime($row['last_access']));
if ($_d1-C_TIMEOUT > $_d2){
// タイムアウトの場合はログイン画面へ遷移する。
}else{
}


Comments