1

ユーザーが非アクティブであるためにログアウトしたときに、ログインページ情報を変更できるユーティリティまたは方法を知っている人はいますか。現在、数分間の非アクティブ状態の後、ログインメッセージをポップアップし、ユーザーをlogout.html((tpl)にリダイレクトします。ここでセッションとCookieが破棄されます。

私は現在、ユーザーをリダイレクトするために以下を使用しています。

header("Location: " . $this->site->hosts->manager . 'login.php');

リダイレクト後、ログインボックスの下に「非アクティブのためタイムアウトしました」というアラートメッセージを表示したいと思います。

このリクエストを達成する方法について何か提案はありますか?

4

2 に答える 2

3

フラグを使用して、ユーザーがログアウトした理由をページに伝えることができます。

header("Location: " . $this->site->hosts->manager . 'login.php?reason=timedout');


if (isset($_GET['reason']) && $_GET['reason']=="timedout") { echo 'Your session timed out'; }
于 2012-07-03T22:11:11.143 に答える
1

リダイレクトコードを変更して、URLの末尾にパラメータを付加します。

header("Location: " . $this->site->hosts->manager . 'login.php?e=0'); 

次に、パラメータが存在するかどうかを確認して、ページでこのパラメータを参照しますlogin.php。存在する場合は、非アクティブのためにログアウトされたことをユーザーに通知します。

<?php

$error = (isset($_GET['e']) ? $_GET['e'] : '');
$reasons = array(
    '0' => 'Logged out due to inactivity.',
    '1' => 'Invalid Username/Password.'
    );

if(!empty($error) && $error < count($reasons)){
    echo $reasons[$error];
}
?>

上記のソリューションでは、「無効なユーザー名/パスワード」などの他の通知のチェックを利用できるため、メッセージを格納するために配列を利用しています。さらに、指定された値が配列の範囲内にあることを確認します。

于 2012-07-03T22:18:40.277 に答える