1

現在、以下の PHP コードを使用して、ユーザーが Web サイトで費やした時間を追跡しています。

if (!isset($_SESSION[timeset1]))
{
$one_val = time();
$_SESSION[timeset_dummy]= $one_val; 
$two_val = time()+1;
  $_SESSION[units_all] = array
  (
   "year"   => 29030400,
   "month"  => 2419200,
   "week"   => 604800,
   "day"    => 86400,
   "hr"   => 3600,
   "min" => 60,
   "sec" => 1
  );
}
else 
{
$two_val = time();
}
$diff = abs($two_val - $_SESSION[timeset_dummy]);

foreach($_SESSION[units_all] as $unit => $mult)
   if($diff >= $mult)
   {
    $output .= " ".intval($diff / $mult)." ".$unit.((intval($diff / $mult) == 1) ? ("") : ("s"));
    $diff -= intval($diff / $mult) * $mult;
   }

セッションが次の 2 分で期限切れになる 8 分間非アクティブになった後、ユーザーにポップアップを表示したいと考えています。ポップアップを表示する方法を教えてください (できれば Javascript を使用せずに、CSS3 と HTML5 を使用すると便利です)。ポップアップには、「続行しますか」という警告メッセージと「はい」という 1 つのボタンが表示されます。ボタンが 2 分間クリックされない場合、自動的にページ ログアウト スクリプト (PHP) が実行されます。

このロジックを実装するためのポインタ。

4

4 に答える 4

0
if(time() - $_SESSION['timestamp'] > 900) { //15 minute subtract new timestamp from the old one
        $_SESSION['logged_in'] = false;
        session_destroy();
        header("Location: " . index.php); //redirect to index.php
        exit;
    } else {
        $_SESSION['timestamp'] = time(); //set new timestamp
    }
于 2014-07-10T20:46:01.597 に答える
0

これは、php セッション変数を使用すると非常に簡単です。

$_SESSION 変数にタイムスタンプを設定し、アクション時間で確認します

<?php
session_start();
if(time()-$_SESSION['time']>600)
unset($_SESSION['time']);
else
$_SESSION['time']=time();//updating with latest timestamp
?>
于 2016-02-22T17:56:25.323 に答える