首頁 > 後端開發 > PHP問題 > php 怎麼設定cookie記住密碼

php 怎麼設定cookie記住密碼

藏色散人
發布: 2023-03-12 14:28:01
原創
3369 人瀏覽過

php設定cookie記住密碼的方法:1、在登入login.php頁面中,進行表單設定;2、驗證登入頁面表單訊息,並建立cookie;3、檢驗session,利用cookie進行賦值即可。

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[&#39;username&#39;]) or empty($_POST[&#39;pass&#39;])){10     echo "<script language=&#39;javascript&#39;>alert(&#39;用户名和密码不能为空!&#39;);history.go(-1);</script>";11 }12 else{ 
13     $username=$_POST[&#39;username&#39;];14     $pass=$_POST[&#39;pass&#39;];15     $password = md5($pass);16     $remember = $_POST[&#39;remember&#39;]; 
17     
18     $testrst = sqlsrv_query($conn, "select * from Employee where name like &#39;$username&#39; or number like &#39;$username&#39;");    //执行查询操作  
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 &#39;$username&#39; or number like &#39;$username&#39;) and pwd = &#39;$password&#39;");32         
33         
34         if(sqlsrv_has_rows($rst)){                                                              //判断登录用户名和密码是否正确35             $adminrow = sqlsrv_fetch_array($rst);37             $userwhethe = 0;38             $_SESSION[&#39;id&#39;]=$adminrow[0];      
41             $_SESSION[&#39;number&#39;]=$adminrow[1];42             $_SESSION[&#39;name&#39;]=$adminrow[2];43             if($username == $adminrow[1]){44               $_SESSION[&#39;type&#39;] = 1;45             }else{46                $_SESSION[&#39;type&#39;] = 2;47             }57 
59               echo "<meta http-equiv=\"refresh\" content=\"0;url=menu.php\" />";60 64         }else{65           echo "<script>alert(&#39;密码错误,请重新登录。&#39;);history.go(-1);</script>";66         }67    }else{68        echo "<script>alert(&#39;该用户名不存在!,请重新登录。&#39;);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[&#39;name&#39;]) and empty($_SESSION[&#39;id&#39;])){              //判断当前用户是否为登录状态
echo "<script>alert(&#39;请登录后再进行执行操作!&#39;);history.go(-1);</script>";
}else{
?>
网页主体
?>
登入後複製

#至於檢驗session,失效利用cookie進行賦值的操作,在index1.php(index的檢查頁)中實現:

 1 <?php 2 session_start(); 3 
 4  if(empty($_SESSION[&#39;username&#39;])){                                      //检查一下session是不是为空 
 5      if(empty($_COOKIE[&#39;username&#39;]) || empty($_COOKIE[&#39;password&#39;])){  
 6         header("location:login.php");                         
 7      }else{                                                               
 8         $_SESSION[&#39;name&#39;] = $_COOKIE[&#39;username&#39;];   
 9         header("location:menu.php"); 
10     } 
11       
12  }13 ?>
登入後複製

另外,考慮到使用者有登出系統或登出再登入的需要,設定了退出頁面logout.php:

<?php
session_start();
unset($_SESSION[&#39;username&#39;]);
unset($_SESSION[&#39;password&#39;]);
setcookie(&#39;username&#39;,&#39;&#39;,0);
setcookie(&#39;password&#39;,&#39;&#39;,0);
header("location:index.php");
?>
登入後複製

  實作後,使用流暢。但密碼的cookie和session保存感覺不是很恰當,在使用者登入介面也沒有對密碼表單進行值得預設保存,這個方面的功能還需要完善。

推薦學習:《PHP影片教學

以上是php 怎麼設定cookie記住密碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板