多くの Web アプリケーションでは、ユーザー ログインは非常に重要なリンクです。ユーザーのアカウントのセキュリティを確保するには、通常、ユーザーのログイン ステータスに一定の時間制限を課す必要があります。 Php 開発では、セキュリティを確保するために、タイムアウト後にユーザーが強制的にログアウトしてログイン ページに戻るように、ログイン タイムアウト ジャンプ機能を開発する必要があることがよくあります。この記事では、Php に基づいたログイン タイムアウト ジャンプの実装方法と応用について説明します。
Php でログイン タイムアウト ジャンプ関数を実装するには、通常 3 つの方法が使用されます。最初のものは Php のネイティブ セッション関数に基づいて実装され、後の 2 つは JavaScript を通じて実装されます。
1.1 Php ネイティブ セッションに基づく
Php ネイティブ セッションは次の手順で実装されます。
一般に、このメソッドは Php のネイティブ セッション機能を利用しているため、他のメソッドよりも安定しています。ただし、Php セッション機能をある程度理解する必要があるため、初心者にとっては難しいかもしれません。
以下は、Php ネイティブ セッションに基づいてログイン タイムアウト ジャンプを実装するサンプル コードです。
// 开启会话 session_start(); // 定义登录时限 $login_age = 60 * 30; // 如果会话存在,继续判断时限是否超时 if (isset($_SESSION['last_activity']) && (time() - $_SESSION['last_activity'] > $login_age)) { // 如果超时,销毁会话 session_unset(); session_destroy(); // 跳转到登录页面 header("Location: login.php"); exit(); } // 更新最新维护时间戳 $_SESSION['last_activity'] = time();
1.2 最初の JavaScript 実装方法
JavaScript を使用してログイン タイムアウト ジャンプを実装します。この方法は、JavaScript コードを Web ページに挿入することです。このコードは、ログインがタイムアウトしたかどうかを定期的に確認し、タイムアウト後にログイン ページにジャンプするために使用されます。
以下は、ログイン タイムアウト ジャンプを実装するための JavaScript に基づくサンプル コードです:
// 定义登录时限 var login_age = <?php echo $login_age; ?>; // 定义跳转时间 var timeout_redirect = 3000; // 定义重定向URL var redirect_url = "login.php"; // 获取页面初始时间 var start_time = (new Date()).getTime(); // 定时器,每秒检查一次登录是否超时 var interval_id = setInterval(function() { var elapsed_time = (new Date()).getTime() - start_time; if (elapsed_time > login_age * 1000) { clearInterval(interval_id); alert("登录超时!"); window.location.href = redirect_url; } }, 1000);
ここで、login_age は定義されたレコード タイムアウト、timeout_redirect はジャンプを待機する時間 (ミリ秒単位)、 redirect_url はリダイレクト ページの URL です。
1.3 2 番目の JavaScript 実装方法
JavaScript を使用してログイン タイムアウト ジャンプを実装するもう 1 つの方法は、ログイン ステータスを監視するための長時間実行される JavaScript タイマーを作成することです。ユーザーのログインがタイムアウトになると、ダイアログ ボックスがポップアップ表示され、ユーザーのログインがタイムアウトしたことを通知し、再度ログインするかどうかを尋ねます。
以下はログインタイムアウトジャンプを実装するためのJavaScriptベースのサンプルコードです:
// 定义登录时限 var login_age = <?php echo $login_age; ?>; // 定义检测间隔 var check_interval = 1000; // 定义初始时间 var start_time = (new Date()).getTime(); // 定义定时器 var timeout_id = setInterval(function() { var elapsed_time = (new Date()).getTime() - start_time; if (elapsed_time > login_age * 1000) { clearInterval(timeout_id); var confirm_remember = confirm("登录已超时,请重新登录!"); if (confirm_remember == true) { window.location.href = redirect_url; } } }, check_interval);
このうち、login_ageは定義された記録タイムアウト、check_intervalは検出間隔、redirect_urlはURLです。ジャンプページ。
ログイン タイムアウト ジャンプのアプリケーション シナリオは非常に多岐にわたります。たとえば、オンライン サービスを提供する Web サイトやアプリケーションでは、アカウントのセキュリティと機密性を確保するために、ユーザーのアクティビティ時間に基づいてユーザーのログイン時間を制限することがよくあります。このような Web サイトやアプリケーションでは、多くの場合、この目的のためにタイムアウト ジャンプ機能の使用が必要になります。
Php 開発でログイン タイムアウト ジャンプ関数を実装するには、通常 3 つの方法があります。そのうちの 1 つは Php ネイティブ セッションに基づいており、後の 2 つはの JavaScript を通じて実装されます。各方法には長所と短所があり、開発者は実際の開発ニーズに基づいて最適な方法を選択できます。ユーザーアカウントのセキュリティを確保する必要があるWebアプリケーションには、ログインタイムアウトジャンプ機能が必須です。
以上がPHPログインタイムアウトジャンプの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。