Rumah  >  Artikel  >  pembangunan bahagian belakang  >  tetapan masa log masuk php

tetapan masa log masuk php

王林
王林asal
2023-05-07 11:17:13758semak imbas

Dalam pembangunan laman web, log masuk adalah fungsi yang agak penting. Untuk melindungi maklumat pengguna dan keselamatan tapak web, kami perlu menetapkan beberapa masa log masuk. Artikel ini akan membincangkan cara menetapkan masa log masuk dalam php.

1. Pengenalan kepada mekanisme sesi

Dalam PHP, sesi adalah mekanisme yang sangat penting. Ia boleh menyimpan beberapa data pada bahagian pelayan supaya ia boleh dipindahkan antara halaman yang berbeza pada tapak web yang sama dan akses. Sesi dilaksanakan berdasarkan kuki Setiap kali halaman diminta, kuki akan membawa id sesi dan pelayan boleh mengenal pasti pengguna dengan sewajarnya.

2. Tetapan masa tamat sesi

Untuk menetapkan masa tamat sesi dalam php, anda boleh menggunakan pembolehubah session.cookie_lifetime. Pembolehubah ini mewakili kitaran hayat sesi, dalam beberapa saat. Secara lalai, sesi tamat tempoh apabila pengguna menutup penyemak imbas. Kita boleh mencapai kawalan sesi yang lebih terperinci dengan mengubah suai pembolehubah ini.

Sebagai contoh, jika kita mahu sesi tamat selepas 10 minit, kita boleh menetapkannya seperti ini:

session_start();
// 将session的生存时间设置为600秒
ini_set('session.cookie_lifetime', 600);

Sudah tentu, anda juga boleh menggunakan fail php.ini untuk menetapkannya. Dalam php.ini, kita boleh mencari parameter session.cookie_lifetime dan menetapkannya kepada nilai yang kita perlukan.

3. Kawal masa operasi pengguna

Selain mengawal masa tamat sesi, kami juga boleh mengawal masa operasi pengguna melalui kaedah lain. Sebagai contoh, kami boleh merekodkan masa operasi terakhir pengguna Jika pengguna tidak melakukan sebarang operasi dalam tempoh masa tertentu, kami akan menentukan bahawa pengguna telah log keluar.

Berikut ialah idea pelaksanaan mudah:

session_start();

// 如果没有登录,重定向到登录页面
if (!isset($_SESSION['user'])) {
    header('location: login.php');
    exit();
}

// 获取用户最后一次操作时间
$lastActive = $_SESSION['last_active'];

// 判断用户是否已经超时
if (time() - $lastActive > 600) {  // 用户超时时间设置为10分钟
    // 销毁session
    session_unset();
    session_destroy();

    // 重定向到登录页面
    header('location: login.php');
    exit();
}

// 更新用户最后操作时间
$_SESSION['last_active'] = time();

// 用户未超时,可以继续执行相关操作

Dalam kod di atas, kami mula-mula menentukan sama ada pengguna telah log masuk, dan jika tidak, ubah hala ke halaman log masuk. Jika pengguna log masuk, dapatkan masa operasi terakhirnya. Jika lebih daripada 10 minit dari masa semasa (iaitu tamat masa yang kami tetapkan), kami memusnahkan sesi dan mengubah hala ke halaman log masuk. Jika pengguna belum tamat masa, kami akan mengemas kini masa operasi terakhirnya supaya kami boleh terus menilai pada masa akan datang.

4. Ringkasan

Melalui pengenalan di atas, kita dapat melihat bahawa kawalan masa log masuk PHP adalah sangat kritikal. Kami perlu mewujudkan mekanisme kawalan sesi yang lengkap untuk melindungi maklumat pengguna dan keselamatan laman web. Dalam pelaksanaan, kami boleh menggunakan mekanisme sesi untuk menyimpan maklumat pengguna, dan menetapkan masa log masuk dengan menetapkan masa tamat sesi dan mengawal masa operasi pengguna.

Atas ialah kandungan terperinci tetapan 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