这篇博客里面还写到 实现“记住我的登录状态”的功能方法,简言之,就是对首先对session进行用户信息赋值,检测session,失效后,利用cookie对其赋值;

  在实现过程中,根据网上一些代码贴,整理出以下代码:另外可以参考PHP 登录记住密码实现思路

在登录login.php页面中,进行表单设置:

<?php
session_start();
?>
<form action="login_chk.php" method="post">
  <div class="inpu">
    <input id="username" name="username" type="text" class="username" value="<?php if($_SESSION['type'] == 1){echo $_SESSION['number'];}else{echo $_SESSION['name'];}?>" placeholder="用户名">
  </div>
  <div class="inpu">
    <input id="pass" name="pass" type="password" class="password" placeholder="登录密码" >
  </div>
  <div class="remember">
    <input class="inpu_remember" type="checkbox" name="remember" ><label>记住我</label>
  </div>
  <button id="submit" type="submit">登录</button>
</form>

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:

 1 <?php
2 session_start();
3 include_once("conn/conn.php");
4 error_reporting(0);
5 if(empty($_SESSION['name']) and empty($_SESSION['id'])){ //判断当前用户是否为登录状态
6 echo "<script>alert('请登录后再进行执行操作!');history.go(-1);</script>";
7 }else{
8 ?>
9 网页主体
10 ?>

至于检验sessionf,失效利用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:

1 <?php
2 session_start();
3 unset($_SESSION['username']);
4 unset($_SESSION['password']);
5 setcookie('username','',0);
6 setcookie('password','',0);
7 header("location:index.php");
8 ?>

  实现后,使用流畅。但对密码的cookie和session保存感觉不是很恰当,在用户登录界面也没有对密码表单进行值得默认保存,这个方面的功能还需要完善。

php实现记住密码下次自动登陆的更多相关文章

  1. php中实现记住密码下次自动登录的例子

    这篇文章主要介绍了php中实现记住密码下次自动登录的例子,本文使用cookie实现记住密码和自动登录功能,需要的朋友可以参考下 做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月 ...

  2. Android之记住密码与自动登陆实现

    本文主要讲述了利用sharedpreference实现记住密码与自动登陆功能 根据checkbox的状态存储用户名与密码 将结果保存在自定义的application中,成为全局变量 布局文件 < ...

  3. android记住密码和自动登陆

    import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences ...

  4. 一个简单WPF登陆界面,包含记住密码,自动登录等功能,简洁美观

    简介:这是一个自己以前用WPF设计的登陆界面,属于一个实验性的界面窗体,如果用于产品还很有不足.但也是有一点学习价值.后台代码略有复杂,但基本上都有注释 分类,略有代码经验的一般都能看懂. 登陆界面外 ...

  5. 基于localStorge开发登录模块的记住密码与自动登录

    前沿||我是乐于分享,善于交流的鸟窝 先做写一篇关于登录模块中记住密码与自动登录的模块.鸟窝微信:jkxx123321 关于这个模块功能模块的由来,这是鸟大大的处女秀,为什么这么说呢?一天在群里,一个 ...

  6. spring security实现记住我下次自动登录功能

    目录 spring security实现记住我下次自动登录功能 一.原理分析 二.实现方式 2.1 简单实现方式 2.2 数据库实现方式 三.区分是密码登录还是rememberme登录 spring ...

  7. Win7下怎么设置让远程桌面连接记住密码下次登录不需再输入

    远程桌面连接功能想必大家都不会陌生吧,特别是使用VPS服务器的用户们经常会用到,为了服务器的安全每次都会把密码设置的很复制,但是这样也有一个麻烦,就是每次要桌面远程连接的时候都要输入这么复杂的密码,很 ...

  8. WinForm应用程序的开机自启、记住密码,自动登录的实现

    一.思路: 1.开机自启,自然是需要用到注册表,我们需要把程序添加到电脑的注册表中去 2.记住密码,自动登录,开机自启,在页面的呈现我们都使用复选框按钮来呈现 3.数据持久化,不能是数据库,可以是sq ...

  9. cookie、session及实现记住密码,自动登录

    在登录帐号.密码框下,有三种帐号登录模式可供选择,用户可根据自己的具体情况选择其中一种适合自己的模式. 1.网吧模式:勾选网吧模式后,登录的帐号会在歪歪注销/退出的时候自动清除,不会留在登录框中,可以 ...

随机推荐

  1. dma传输数据长度,在启动前必须确保是一个大于0的数字

    否则将导致不能接受数据

  2. [No000013D].Net 项目代码风格参考

    1. C#代码风格要求 1.1 注释 类型.属性.事件.方法.方法参数,根据需要添加注释. 如果类型.属性.事件.方法.方法参数的名称已经是自解释了,不需要加注释:否则需要添加注释. 当添加注释时,添 ...

  3. 栈帧 2.6. Frames 虚拟机内存模型

    https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-2.html#jvms-2.6 小结: 1. https://docs.oracle. ...

  4. 使用Dom4j的xPath解析xml文件------xpath语法

    官方语法地址:http//www.w3school.com.cn/xpath/index.asp xpath使用路径表达式来选取xml文档中的节点或节点集.节点是通过沿着路径(path)或者步(ste ...

  5. SR锁存器

    CRM(临界连续模式)BOOST PFC 电路控制系统 SR锁存器 S和R都等于0的时候为什么有两个不同的Q?正因为这样才叫锁存器.Q’是Q的取反,不可能相同.Q*和Q‘不一样.Q是Q*的前一个状态. ...

  6. 主动触发input框的失去焦点事件,阻止输入法跳出

    今天遇到个问题,我在手机做一个选择生日的功能,但是当我点击input框时,事件选择插件和输入法都弹出来了,很丑,然后就想阻止输入法弹出来, 网上一个方法是:在input框的获取焦点事件里,主动触发失去 ...

  7. phpstudy + dvws

    下载apache+mysql+php 的服务组件 phpstudy phpstudy 下载地址 https://www.baidu.com/link?url=EN5Br6PK-Gboaf905Jjt0 ...

  8. 帝国cms添加修改会员字段时字段名不能带数字,否则注册页会出现空白

    这几天ytkah在整帝国cms会员模块,根据客户需求添加不同的字段,这个相对不难,可还是遇到了点问题.当时添加会员字段时,在字段名用数字“1”来代表第一次,如下图的字段名“1rwsdy” 但是添加以后 ...

  9. what's the 二叉树

    what's the 树 在了解二叉树之前,首先我们得有树的概念. 树是一种数据结构又可称为树状图,如文档的目录.HTML的文档树都是树结构,它是由n(n>=1)个有限节点组成一个具有层次关系的 ...

  10. 【LDA】周志华

    一.书籍