您好,登錄后才能下訂單哦!
本篇內容介紹了“php設置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 <?php 2 session_start(); 3 4 if(empty($_SESSION['username'])){ //檢查一下session是不是為空 5 if(empty($_COOKIE['username']) || empty($_COOKIE['password'])){ 6 header("location:login.php"); 7 }else{ 8 $_SESSION['name'] = $_COOKIE['username']; 9 header("location:menu.php"); 10 } 11 12 }13 ?>
另外,考慮到用戶有退出系統或者注銷再登錄的需要,設置了退出頁面logout.php:
<?php session_start(); unset($_SESSION['username']); unset($_SESSION['password']); setcookie('username','',0); setcookie('password','',0); header("location:index.php"); ?>
實現后,使用流暢。但對密碼的cookie和session保存感覺不是很恰當,在用戶登錄界面也沒有對密碼表單進行值得默認保存,這個方面的功能還需要完善。
“php設置cookie記住密碼的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。