En utilisant tp3.2 pour la gestion du backend, j'ai rencontré un problème lors de la connexion de l'utilisateur.
1 Une fois que l'utilisateur du backend s'est connecté, il est toujours valide si je le laisse pendant un après-midi entier et ferme le navigateur, l'état de connexion de l'utilisateur. existera toujours, uniquement lorsque je clique pour me déconnecter. Ce n'est qu'ainsi que l'expiration de l'utilisateur peut être réalisée.
La période de validité de session par défaut de PHP est de 1440 secondes (24 minutes) si le client ne s'actualise pas pendant plus de 24 minutes. , la session en cours sera recyclée et invalide. Pourquoi est-elle toujours valable
2. Comment utiliser tp pour réaliser le problème de rapidité de connexion de l'utilisateur : lorsque l'utilisateur n'opère pas, il expirera automatiquement après un délai fixe. Comment y parvenir.
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("登录失败");
}
// 设置用户登录session登录限制时间
if(isset($_SESSION['expire'])){
if($_SESSION['expire']<time()){
unset($_SESSION['expire']);
$this->error('登录过期,请重新登录','Rbac/Login/login');
}else{
// 刷新时间戳
$_SESSION['expire']=time()+600;
}
}
Le principe est le suivant : définissez une durée d'expiration, telle que : 600, enregistrez le point de départ lors de la connexion et vérifiez s'il expire à chaque fois que la page est actualisée (en fait, la logique est : s'il faut se connecter - s'il faut time out - s'il faut avoir l'autorisation), s'il expire, il affiche le message « Délai d'expiration de la connexion, veuillez vous reconnecter » et passe à la page de connexion. S'il n'a pas expiré, cela signifie que l'utilisateur est toujours actif, et le point de départ du timing est réinitialisé
$_SESSION['expire']=time() + 600
.