php实现七天免登录的方法:1、在前端创建一个用户选择七天免登录的按钮;2、在后端中,根据用户提交的用户名和密码查询到用户的id;3、将用户id存入cooike中;4、设置七天的过期时间即可。
本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。
php 怎么实现七天免登录?
php中实现7天免登录功能,防止cookie欺骗
1、免登录思路
立即学习“PHP免费学习笔记(深入)”;
用户选择七天免登录按钮,后端根据用户提交的用户名和密码查询到用户的id将用户id存入cooike中并设置七天的过期时间。在不清除cookie信息(非正常退出的时候),后台帮助用户登录。实际就是利用cooki实现。
2、验证登录文件:checkLogin.php
prepare($sql);$stm ->bindParam(1,$username);$stm ->bindParam(2,$password);$stm ->execute();$res = $stm->fetch(PDO::FETCH_ASSOC);if($stm->rowCount() == 1){ //验证成功 clearCookie(); if($islogin==1){ //记住密码 setcookie("username",$res['username'],strtotime('+7 days')); $token = settoken($res['username'],$res['password'],$res['id']); setcookie("token",$token,strtotime('+7 days')); }else{ // 无记住密码 setcookie("username",$res['username']); $token = settoken($res['username'],$res['password'],$res['id']); setcookie("token",$token); } exit(" alert('登录成功!'); location.href ='index.php'; ");}else{ //验证失败 exit(" alert('用户名或密码有误!'); location.href ='login.php'; ");}//清除cookiefunction clearCookie(){ setcookie("username",'',time()-1800); setcookie("token",'',time()-1800);}//设置tokenfunction settoken($username,$password,$id){ $salk = "czx"; $token = md5($salk.$username.$password)."*".$id; return $token;}
登录后复制
3、数据库配置文件:config.php
getMessage();} catch(Throwable $e){ //捕捉拥有Throwable接口的错误或者其他异常 echo $e->getMessage();}
登录后复制
4、登录页面文件 : login.php
<?php if($_GET['act'] == 'out'){ setcookie("username",'',time()-1800); setcookie("token",'',time()-1800); } $token = $_COOKIE['token']; $username = $_COOKIE['username']; if(!empty($username) &&!empty($token)&& ($_GET['act'] != 'out')){ exit(" alert('用户已登录,请直接访问!'); location.href ='index.php'; "); }?>nbsp;html>登录 *{ margin: 0px; padding: 0; } .contater { border: 1px solid #000; width: 300px; display: flex; flex-direction: column; margin: auto; } .contater>div { margin-top: 20px; } h3 { text-align: center; } .contater > .submit >input{ margin: 15px 140px; font-size: 1.5rem; }登录
登录后复制
5、首页文件:index.php
prepare($sql); $stm ->bindParam(1,$uid); $stm ->execute(); $result =$stm->fetch(PDO::FETCH_ASSOC); if($stm->rowCount()==1){ $salk = "czx"; $token_res = md5($salk.$result['username'].$result['password']); if($token_res != $token_arr[0]){ exit(" alert('请先登录'); loction.href ='login.php'; "); } }else{ exit(" alert('请您先登录'); location.href='login.php'; "); }?>nbsp;html>首页 * { margin: 0px; padding: 0px; box-sizing: border-box; } h1 { text-align: center; } a { text-decoration: none; font-size: 1.5rem; color: darkgray; } a:hover { background-color: lightskyblue; border-radius: 5%; /* font-size: 2rem; */ } li { list-style-type: none; color: darkgray; } span { color: darkgray; font-size: 1.5rem; margin-right: 15px; color:burlywood } .top { /* width: 960px; */ background-color: linen; display: flex; flex-flow: row nowrap; justify-content: space-between; } .top > div { margin: 10px 40px; } .column { /* width: 960px; */ display: flex; flex-flow: row nowrap; justify-content: space-around; } .column > li { margin-right: 65px; padding: 0px 20px; }陶转转首页
登录后复制
推荐学习:《PHP视频教程》
以上就是php 怎么实现七天免登录的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2077111.html