php實現七天自動登入的方法:1.新show.php檔案實作登入頁面;2、建立function.php檔案實作加密cookie;3、設定使用者名稱和密碼的判斷;4、開啟session並實現一周內自動登入即可。
本文操作環境:Windows7系統,PHP7.4版,Dell G3電腦。
php 怎麼實現七天自動登入?
PHP實作一週內自動登陸:
1 .新建四個檔案
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影片教學》
#以上是php 怎麼實現七天自動登錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!