本文操作环境:windows7系统,PHP7.4版,Dell G3电脑。php 怎么实现七天自动登录?PHP实现一周内自动登陆:新建四个文件 show.php<?php ?> <html > <head>
本文操作环境:windows7系统,PHP7.4版,Dell G3电脑。
php 怎么实现七天自动登录?
PHP实现一周内自动登陆:
新建四个文件
show.php
<?php
?>
<html >
<head>
<meta charset="utf-8">
<title>测试</title>
</head>
<body>
<fORM action="login.php" method="post">
用户名<input type="text" name="name"/>
密码<input type="text" name="psd"/>
自动登录<input type="radio" name="auto">
<input type="submit" value="提交"/>
</form>
</body>
</html>
function.php//加密cookie
这里我用了异或加密的方法,因为经过两次异或,会变回原来的值
<?php
function encryption ($value, $type=0) {
$key = md5('denglu');//里边的字符可以自己设置
if (!$type) {
return str_replace('=', '', base64_encode($value ^ $key));
}
$value = base64_decode($value);
return $value ^ $key;
}
login.php
<?php
require_once('function.php');
session_start();//开启session
header("Content-Type: text/html; charset=UTF-8");
if(isset($_POST['auto'])){//如果勾选了自动登陆一周
if(!isset($_COOKIE['auto'])){
setcookie('auto',encryption($_POST['name']),7*24*3600+time());//设置cookie过期时间为一周后
}
$_SESSION['name'] = $_POST['name'];
header('location:success.php');
}else{//没有勾选自动登陆一周
$_SESSION['name'] = $_POST['name'];
header('location:success.php');
}
success.php
<?php
session_start();//开启session
require_once('function.php');
header("Content-Type: text/html; charset=UTF-8");
if(isset($_SESSION['name'])){
echo '成功登陆session:用户名为'.$_SESSION['name'];
}
elseif(isset($_COOKIE['auto'])){
echo '成功登陆cookie:用户名为'.encryption($_COOKIE['auto'],1);
}else{//什么都没有的跳转到登录表单
header('location:show.php');
}
?>
运行一下
查看一下cookie
把浏览器关闭再打开,此时是读取cookie
这里只是提供提供一个思路,具体的登录验证还有待读者自己思考。
以上就是php 怎么实现七天自动登录的详细内容,更多请关注编程界其它相关文章!
--结束END--
本文标题: php 怎么实现七天自动登录
本文链接: https://lsjlt.com/news/898.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0