私は同様の質問がされていることを知っていますが、解決策がないようです。私は自動ログアウト機能を持っています(下記参照)。ブラウザが閉じているとPHPの自動ログアウト機能が働かない
ただし、タブ/ブラウザを閉じると、セッションが破壊されることはなく、さらに重要なことに、DBテーブルtblTimeLog
は更新されません。
私がしたいことは、ブラウザまたはタブが閉じていても「タイマーを実行し続ける」ためです。どのようにこれを達成するための任意の提案?
自動ログアウト機能:
<?
session_start();
// set timeout period in seconds
$idleTime = 2400;
header("refresh: 2400");
// check to see if $_SESSION['timeout'] is set
if(isset($_SESSION['timeout'])) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $idleTime) {
$db->Execute("UPDATE tblTimeLog SET LogoutTime = NOW() WHERE sid ='".session_id()."'".$row['konsulentid'].'');
session_destroy();
header("Location: login.php?loggut");
exit();
}
}
$_SESSION['timeout'] = time();
?>
あなたはタブを閉じるイベントを捕まえることができます。その後、彼は有効期限の後に来るあなたのDBを次回更新する – chhameed
@chhameed答えのために、これはjavascriptが正しいですか?また、次回はDBを更新することもできません。あなたが返すかどうかに関わらず、DBが常に最新のものになるように、 –
yes javascriptですが、javascriptを使用したくない場合は、cron-jobがこれに最適なソリューションです。特定の時間の後に実行され、それに応じてテーブルを更新します。 – chhameed