Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Lompat tamat masa log masuk Php

Lompat tamat masa log masuk Php

WBOY
WBOYasal
2023-05-06 21:00:08588semak imbas

Dalam banyak aplikasi web, log masuk pengguna ialah pautan yang sangat penting. Untuk memastikan keselamatan akaun pengguna, biasanya perlu mengenakan had masa tertentu pada status log masuk pengguna. Dalam pembangunan Php, selalunya perlu untuk membangunkan fungsi lompat tamat masa log masuk, supaya pengguna terpaksa log keluar dan melompat kembali ke halaman log masuk selepas tamat masa untuk memastikan keselamatan. Dalam artikel ini, kami akan meneroka kaedah pelaksanaan dan aplikasi lompat tamat masa log masuk berdasarkan Php.

  1. Cara melaksanakan lompat tamat masa

Dalam Php, untuk melaksanakan fungsi lompat tamat masa log masuk, tiga kaedah biasanya digunakan. Yang pertama dilaksanakan berdasarkan fungsi sesi asli Php, manakala dua yang terakhir dilaksanakan melalui JavaScript.

1.1 Berdasarkan sesi asli Php

Sesi asli PHP dilaksanakan melalui langkah berikut:

  1. Tentukan had masa log masuk pengguna
  2. Tukar semasa Cap masa disimpan dalam sesi pengguna bersama-sama dengan had masa log masuk pengguna.
  3. Apabila pengguna mengendalikan tapak web, kod Php menentukan sama ada pengguna telah tamat masa dengan menyemak cap masa dalam sesi.
  4. Jika pengguna telah tamat masa, kosongkan sesi pengguna dan lompat ke halaman log masuk.

Secara amnya, cara ini lebih stabil daripada cara lain kerana ia dikuasakan oleh fungsi sesi asli Php. Walau bagaimanapun, ia boleh menjadi sukar untuk pemula kerana ia memerlukan sedikit pemahaman tentang fungsi sesi Php.

Berikut ialah contoh kod untuk melaksanakan lompat tamat masa log masuk berdasarkan sesi asli 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 Pelaksanaan JavaScript pertama

Gunakan JavaScript untuk melaksanakan lompat tamat masa log masuk Kaedah adalah untuk memasukkan sekeping kod JavaScript ke dalam halaman web. Kod ini digunakan untuk menyemak dengan kerap sama ada log masuk telah tamat masa dan melompat ke halaman log masuk selepas tamat masa.

Berikut ialah contoh kod berdasarkan JavaScript untuk melaksanakan lompat tamat masa log masuk:

// 定义登录时限
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);

di mana umur_log masuk ialah tamat masa rekod yang ditentukan, tamat masa_redirect ialah masa untuk menunggu lompatan (dalam milisaat), redirect_url ialah URL halaman ubah hala.

1.3 Pelaksanaan JavaScript kedua

Cara lain untuk melaksanakan lompat tamat masa log masuk melalui JavaScript adalah dengan mencipta pemasa JavaScript yang berjalan lama untuk memantau status log masuk. Apabila log masuk pengguna tamat masa, kotak dialog muncul untuk menggesa pengguna bahawa log masuk pengguna telah tamat masa dan bertanya sama ada untuk log masuk semula.

Berikut ialah contoh kod berdasarkan JavaScript untuk melaksanakan lompat tamat masa log masuk:

// 定义登录时限
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);

Antaranya, login_age ialah tamat masa rakaman yang ditentukan, check_interval ialah selang pengesanan dan redirect_url ialah URL bagi halaman lompat.

  1. Senario Aplikasi

Senario aplikasi lompat tamat masa log masuk adalah sangat luas. Sebagai contoh, tapak web atau aplikasi yang menyediakan perkhidmatan dalam talian sering mengehadkan masa log masuk pengguna berdasarkan masa aktiviti pengguna untuk memastikan keselamatan dan kerahsiaan akaun. Laman web dan aplikasi sedemikian sering memerlukan penggunaan fungsi lompat tamat masa untuk tujuan ini.

  1. Ringkasan

Biasanya terdapat tiga cara untuk melaksanakan fungsi lompat tamat masa log masuk dalam pembangunan Php, salah satunya adalah berdasarkan sesi asli Php, dan dua yang terakhir dilaksanakan melalui JavaScript daripada. Setiap kaedah mempunyai kelebihan dan kekurangannya, dan pembangun boleh memilih kaedah yang paling sesuai dengan mereka berdasarkan keperluan pembangunan sebenar mereka. Untuk aplikasi web yang perlu memastikan keselamatan akaun pengguna, fungsi lompat tamat masa log masuk adalah penting.

Atas ialah kandungan terperinci Lompat tamat masa log masuk Php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn