php設定cookie記住密碼的方法:1、在登入login.php頁面中,進行表單設定;2、驗證登入頁面表單訊息,並建立cookie;3、檢驗session,利用cookie進行賦值即可。
本文操作環境:windows7系統、PHP7.1版,DELL G3電腦
php實作記住密碼下次自動登陸
這篇部落格裡面還寫到實現「記得我的登入狀態」的功能方法,簡言之,就是對首先對session進行使用者資訊賦值,偵測session,失效後,利用cookie對其賦值;
#在實作過程中,依照網路上一些程式碼貼,整理出以下程式碼:另外可以參考PHP 登入記住密碼實現想法
在登入login.php頁面中,進行表單設定:
<?php session_start(); ?> <form action="login_chk.php" method="post">
login_chk.php頁面用於驗證登入頁面表單訊息,並建立cookie:
1 <?php 2 header("Content-type:text/html;charset=gb2312"); 3 4 session_start(); 5 include_once("conn/conn.php"); //加载数据库连接文件 6 7 error_reporting(0); 8 9 if(empty($_POST['username']) or empty($_POST['pass'])){10 echo "<script language='javascript'>alert('用户名和密码不能为空!');history.go(-1);</script>";11 }12 else{ 13 $username=$_POST['username'];14 $pass=$_POST['pass'];15 $password = md5($pass);16 $remember = $_POST['remember']; 17 18 $testrst = sqlsrv_query($conn, "select * from Employee where name like '$username' or number like '$username'"); //执行查询操作 19 20 if(!empty($remember)){ //如果用户选择了,记录登录状态就把用户名和加了密的密码放到cookie里面 21 setcookie("username", $username, time()+3600*24*30); 22 setcookie("password", $pass, time()+3600*24*30); 23 } 24 25 26 27 28 29 if(sqlsrv_has_rows($testrst)){30 31 $rst = sqlsrv_query($conn, "select * from Employee where (name like '$username' or number like '$username') and pwd = '$password'");32 33 34 if(sqlsrv_has_rows($rst)){ //判断登录用户名和密码是否正确35 $adminrow = sqlsrv_fetch_array($rst);37 $userwhethe = 0;38 $_SESSION['id']=$adminrow[0]; 41 $_SESSION['number']=$adminrow[1];42 $_SESSION['name']=$adminrow[2];43 if($username == $adminrow[1]){44 $_SESSION['type'] = 1;45 }else{46 $_SESSION['type'] = 2;47 }57 59 echo "<meta http-equiv=\"refresh\" content=\"0;url=menu.php\" />";60 64 }else{65 echo "<script>alert('密码错误,请重新登录。');history.go(-1);</script>";66 }67 }else{68 echo "<script>alert('该用户名不存在!,请重新登录。');history.go(-1);</script>";69 }70 }71 72 ?>
menu.php以及其他功能頁面都會檢查一遍session:
<?php session_start(); include_once("conn/conn.php"); error_reporting(0); if(empty($_SESSION['name']) and empty($_SESSION['id'])){ //判断当前用户是否为登录状态 echo "<script>alert('请登录后再进行执行操作!');history.go(-1);</script>"; }else{ ?> 网页主体 ?>
#至於檢驗session,失效利用cookie進行賦值的操作,在index1.php(index的檢查頁)中實現:
1 2d85d25d97dd14ec9f1ac797789cbed0
另外,考慮到使用者有登出系統或登出再登入的需要,設定了退出頁面logout.php:
<?php session_start(); unset($_SESSION['username']); unset($_SESSION['password']); setcookie('username','',0); setcookie('password','',0); header("location:index.php"); ?>
實作後,使用流暢。但密碼的cookie和session保存感覺不是很恰當,在使用者登入介面也沒有對密碼表單進行值得預設保存,這個方面的功能還需要完善。
推薦學習:《PHP影片教學》
以上是php 怎麼設定cookie記住密碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!