首页 >后端开发 >PHP问题 > 正文

php 怎么设置cookie记住密码

原创2021-09-14 10:31:2301010

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 <?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视频教程

以上就是php 怎么设置cookie记住密码的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:php
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    推荐视频教程
  • PHP基于Cookie的购物车模块设计PHP基于Cookie的购物车模块设计
  • 视频教程分类