ホームページ >バックエンド開発 >PHPの問題 >PHPログインタイムアウトジャンプ

PHPログインタイムアウトジャンプ

WBOY
WBOYオリジナル
2023-05-06 21:00:08684ブラウズ

多くの Web アプリケーションでは、ユーザー ログインは非常に重要なリンクです。ユーザーのアカウントのセキュリティを確保するには、通常、ユーザーのログイン ステータスに一定の時間制限を課す必要があります。 Php 開発では、セキュリティを確保するために、タイムアウト後にユーザーが強制的にログアウトしてログイン ページに戻るように、ログイン タイムアウト ジャンプ機能を開発する必要があることがよくあります。この記事では、Php に基づいたログイン タイムアウト ジャンプの実装方法と応用について説明します。

  1. タイムアウト ジャンプの実装方法

Php でログイン タイムアウト ジャンプ関数を実装するには、通常 3 つの方法が使用されます。最初のものは Php のネイティブ セッション関数に基づいて実装され、後の 2 つは JavaScript を通じて実装されます。

1.1 Php ネイティブ セッションに基づく

Php ネイティブ セッションは次の手順で実装されます。

  1. ユーザーのログイン時間制限を決定する
  2. 変更現在のタイムスタンプは、ユーザーのログイン時間制限とともにユーザー セッションに保存されます。
  3. ユーザーが Web サイトを操作すると、Php コードはセッション内のタイムスタンプをチェックしてユーザーがタイムアウトしたかどうかを判断します。
  4. ユーザーがタイムアウトした場合は、ユーザー セッションをクリアして、ログイン ページにジャンプします。

一般に、このメソッドは 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です。ジャンプページ。

  1. アプリケーション シナリオ

ログイン タイムアウト ジャンプのアプリケーション シナリオは非常に多岐にわたります。たとえば、オンライン サービスを提供する Web サイトやアプリケーションでは、アカウントのセキュリティと機密性を確保するために、ユーザーのアクティビティ時間に基づいてユーザーのログイン時間を制限することがよくあります。このような Web サイトやアプリケーションでは、多くの場合、この目的のためにタイムアウト ジャンプ機能の使用が必要になります。

  1. 概要

Php 開発でログイン タイムアウト ジャンプ関数を実装するには、通常 3 つの方法があります。そのうちの 1 つは Php ネイティブ セッションに基づいており、後の 2 つはの JavaScript を通じて実装されます。各方法には長所と短所があり、開発者は実際の開発ニーズに基づいて最適な方法を選択できます。ユーザーアカウントのセキュリティを確保する必要があるWebアプリケーションには、ログインタイムアウトジャンプ機能が必須です。

以上がPHPログインタイムアウトジャンプの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。