0

これに慣れていないので、ユーザーが「他のリンク」をクリックしない場合、つまりアクティビティなしでそのページにとどまる場合、100秒後にセッションタイムアウトを実装しようとしています..次のphpスクリプトを使用しましたが、「 if"条件チェックはスクリプトごとに1回だけ行われるため、しばらくしてチェックに違反した場合でも自動リダイレクトは発生しません..この時間チェックがページで繰り返し発生するように(phpスクリプトのみを使用して)方法はありますか? ?

if (isset($_SESSION['LAST_ACTIVITY']) and (time() - $_SESSION['LAST_ACTIVITY'] > 100)) 
{
    session_unset();                    
    session_destroy();                          
    header('Location: seesiontimeout.php');
}

$_SESSION['LAST_ACTIVITY']変数はスクリプトの開始時に設定されています...

4

2 に答える 2

2

あなたが尋ねた...

この時間チェックがページで繰り返し発生するように ( php スクリプトのみを使用して) 方法はありますか??

(強調鉱山)。

いいえ。PHP はサーバー上で要求ごとに 1 回実行され、動的 HTML をレンダリングします。単にアイドル状態で実行して、ブラウザーに「タイムアウトが近づいています!」と伝えることはできません。

サーバーに繰り返し要求するクライアント側の JavaScript 関数を設定する必要があります。

もうタイムアウトしましたか? いいえ。
もうタイムアウトしましたか? いいえ。
もうタイムアウトしましたか? うん!タイムアウト ページにリダイレクトします。

于 2012-12-01T05:49:01.713 に答える
0

is there a way(using only php script) so that this time check occurs repeatedly on the page

「PHPのみ」を使用するのではなく、JavaScriptでAJAXを使用して、サーバー上のPHPを呼び出し続けることができます。

PHP は完全にサーバー上で実行され、クライアントのブラウザーでは実行されません。そのため、このようなことを判断するためにサーバーをチェックし続けるようにクライアントに指示する必要があります。

于 2012-12-01T05:49:42.457 に答える