首页 >后端开发 >PHP问题 >php 怎么实现七天自动登录

php 怎么实现七天自动登录

藏色散人
藏色散人原创
2021-12-16 10:31:422850浏览

php实现七天自动登录的方法:1、新建show.php文件实现登录页面;2、创建function.php文件实现加密cookie;3、设置用户名和密码的判断;4、开启session并实现一周内自动登录即可。

php 怎么实现七天自动登录

本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。

php 怎么实现七天自动登录?

PHP实现一周内自动登陆:

1.新建四个文件
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(&#39;denglu&#39;);//里边的字符可以自己设置
if (!$type) {
return str_replace(&#39;=&#39;, &#39;&#39;, base64_encode($value ^ $key));
}

$value = base64_decode($value);
return $value ^ $key;
}

login.php

<?php
require_once(&#39;function.php&#39;);
session_start();//开启session
header("Content-Type: text/html; charset=UTF-8");

/*
 * 添加一些用户名和密码的判断
 * 。。。。。。。。。
 */

if(isset($_POST[&#39;auto&#39;])){//如果勾选了自动登陆一周
    if(!isset($_COOKIE[&#39;auto&#39;])){
        setcookie(&#39;auto&#39;,encryption($_POST[&#39;name&#39;]),7*24*3600+time());//设置cookie过期时间为一周后
    }
    $_SESSION[&#39;name&#39;] = $_POST[&#39;name&#39;];
    header(&#39;location:success.php&#39;);
}else{//没有勾选自动登陆一周
    $_SESSION[&#39;name&#39;] = $_POST[&#39;name&#39;];
    header(&#39;location:success.php&#39;);
}

success.php

<?php
session_start();//开启session
require_once(&#39;function.php&#39;);
header("Content-Type: text/html; charset=UTF-8");
if(isset($_SESSION[&#39;name&#39;])){
echo &#39;成功登陆session:用户名为&#39;.$_SESSION[&#39;name&#39;];
}
elseif(isset($_COOKIE[&#39;auto&#39;])){
echo &#39;成功登陆cookie:用户名为&#39;.encryption($_COOKIE[&#39;auto&#39;],1);
}else{//什么都没有的跳转到登录表单
header(&#39;location:show.php&#39;);
}

?>

运行一下
php 怎么实现七天自动登录

查看一下cookie

php 怎么实现七天自动登录

把浏览器关闭再打开,此时是读取cookie
php 怎么实现七天自动登录

这里只是提供提供一个思路,具体的登录验证还有待读者自己思考。

推荐学习:《PHP视频教程

以上是php 怎么实现七天自动登录的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn