Menggunakan tp3.2 untuk pengurusan bahagian belakang, saya menghadapi masalah semasa melakukan log masuk pengguna
1 Selepas pengguna bahagian belakang log masuk, ia sentiasa sah Jika saya meninggalkannya sepanjang petang dan menutup pelayar, status log masuk pengguna akan sentiasa wujud, hanya apabila saya klik untuk log keluar Hanya dengan cara ini tamat tempoh pengguna boleh direalisasikan
Tempoh sah sesi lalai PHP ialah 1440 saat (24 minit). , sesi semasa akan dikitar semula dan tidak sah Kenapa selalu sah
2. Cara menggunakan tp untuk merealisasikan masalah ketepatan masa log masuk pengguna: apabila pengguna tidak beroperasi, ia akan tamat tempoh secara automatik selepas masa yang ditetapkan
Kod bahagian log masuk saya:
if(IS_POST){
$uname=I('post.uname');
$password=md5(I('post.password'));
$res=M('manager')->where("uname='{$uname}'")->find();
if(is_null($res)) {
$this->error("用户名不存在");
return false;
}
if($res['uname']==$uname&&$res['password']==$password){
$_SESSION['uname']=$res['uname'];
$_SESSION['expire']=time()+600;
$this->success('登录成功',U('Rbac/Index/index'));
exit();
}
$this->error("登录失败");
}
Idea yang saya lihat di Baidu ialah menggunakan $_Session['expire'] untuk melaksanakannya, tetapi saya tidak tahu di mana hendak meletakkan kod ini Adakah tidak sesuai untuk meletakkannya semasa semakan log masuk?
// 设置用户登录session登录限制时间
if(isset($_SESSION['expire'])){
if($_SESSION['expire']<time()){
unset($_SESSION['expire']);
$this->error('登录过期,请重新登录','Rbac/Login/login');
}else{
// 刷新时间戳
$_SESSION['expire']=time()+600;
}
}
Prinsipnya ialah: tetapkan tempoh tamat masa, seperti: 600, rekod titik permulaan masa semasa log masuk, dan semak sama ada ia tamat setiap kali halaman dimuat semula (sebenarnya logiknya ialah: sama ada untuk log masuk - sama ada untuk masa tamat - sama ada mempunyai kebenaran), jika tamat masa, maka Ia menggesa "Masa masuk log masuk, sila log masuk semula" dan melompat ke halaman log masuk Jika ia belum tamat masa, ia bermakna pengguna masih aktif, dan titik permulaan pemasaan ditetapkan semula
$_SESSION['expire']=time() + 600
.