做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求。这种功能一般都是通过cookie来实现的。

整个过程就是用户在登陆的时候,如果选择了记住密码或者一周内免登陆等这个选项的时候,则在用户成功登陆操作完成之后,存储一个实现自动登录的cookie的数据到数据库的用户表里面,作为下次自动登录时验证用。验证通过则自动登录,否则需要输入用户名,密码进行登陆。

具体示例代码如下:

  1. $username=trim($_POST['username']);
  2. $password=md5(trim($_POST['password']));
  3. $ref_url=$_GET['req_url'];
  4. $remember=$_POST['remember'];//是否自动登录标示
  5. $err_msg='';
  6. if($username==''||$password==''){
  7. $err_msg="用户名和密码都不能为空";
  8. }else{
  9. $row=getUserInfo($username,$password);
  10. if(empty($row)){
  11. $err_msg="用户名和密码都不正确";
  12. }else{
  13. $_SESSION['user_info']=$row;
  14. if(!empty($remember)){//如果用户选择了,记录登录状态就把用户名和加了密的密码放到cookie里面
  15. setcookie("username",$username,time()+3600*24*365);
  16. setcookie("password",$password,time()+3600*24*365);
  17. }
  18. if(strpos($ref_url,"login.php")===false){
  19. header("location:".$ref_url);
  20. }else{
  21. header("location:main_user.php");
  22. }
  23. }
  24. }

另外在访问网站的每个页面时,都要先进行一遍如下函数的检查

  1. //检查用户是否登录
  2. function checklogin(){
  3. if(empty($_SESSION['user_info'])){//检查一下session是不是为空
  4. if(empty($_COOKIE['username'])||empty($_COOKIE['password'])){//如果session为空,并且用户没有选择记录登录状
  5. header("location:login.php?req_url=".$_SERVER['REQUEST_URI']);//转到登录页面,记录请求的url,登录后跳转过去,用户体验好。
  6. }else{//用户选择了记住登录状态
  7. $user=getUserInfo($_COOKIE['username'],$_COOKIE['password']);//去取用户的个人资料
  8. if(empty($user)){//用户名密码不对没到取到信息,转到登录页面
  9. header("location:login.php?req_url=".$_SERVER['REQUEST_URI']);
  10. }else{
  11. $_SESSION['user_info']=$user;//用户名和密码对了,把用户的个人资料放到session里面
  12. }
  13. }
  14. }
  15. }

关于用户登录的记住密码实现思路(考虑到安全问题)相关推荐

  1. vue登录页面设置记住密码

    vue使用cookie实现记住密码功能 1.样式结合elementui <el-form :model="usermsg" ref="usermsg"&g ...

  2. vue 登录页面记住密码功能

    vue+iview/element 一般用来快速搭建后台管理系统,登录页的记住密码功能也是必不可少的. 记住密码快速登录功能(iview ui): 思路:首次登录,记住密码,将密码存储到cookie中 ...

  3. PHP会员登录实现记住密码功能 thinkPHP5

    会员登录实现记住密码功能需要用到cookie 和session,首先我们来简单了解一下cookie 和session 的区别 Cookie Cookie是完全保存在客户端.当客户端禁止cookie时将 ...

  4. Android studio自动登录和记住密码的实现

    Android studio自动登录和记住密码的实现 文章目录 Android studio自动登录和记住密码的实现 前言 一.效果 二.设计思路 三.知识点介绍 1. SharedPreferenc ...

  5. 用localStorage实现登录时记住密码的功能

    用localStorage实现登录时记住密码的功能 HTNL代码片段 <el-input v-model="ruleForm.user" placeholder=" ...

  6. WINDOWS 2000下如何获得用户登录名和密码

    --  WINDOWS 2000下如何获得用户登录名和密码 WINDOWS 2000下如何获得用户登录名和密码 作者:moonstone 下载本文示例源代码一.原理 在NT/2000中交互式的登陆支持 ...

  7. ubuntu卡在用户登录界面,密码正确进不去主界面。问题解决。

    进入ubuntu时,卡在用户登录界面,密码输入正确,却无法进入主界面,网上查找原因,主要有三方面. 环境变量问题.回忆一下自己最近有没有在 .bashrc, .profile , /etc/profi ...

  8. 前端登录实现记住密码功能

    1.在登录的表单中添加记住密码勾选框 <el-form-item><el-checkbox name="type" v-model="remember& ...

  9. android:登录界面记住密码

    (1)声明一个共享参数对象,并在onCreate函数中调用getSharedPreferences方法获取共享参数的实例. (2)登录成功时,如果用户勾选了"记住密码",就使用共享 ...

  10. EF做后台登录(记住密码)首页

    1.数据库设计 CREATE TABLE [dbo].[AdminUser]([Id] [int] IDENTITY(1,1) NOT NULL,[Name] [varchar](50) NULL,[ ...

最新文章

  1. php输出带的字符串吗,php输出含有“#”字符串的方法
  2. linux c 实现函数 trim 除去字符串首尾空格
  3. 用python画皮卡丘代码-利用Python绘制萌萌哒的皮卡丘
  4. Android中DatePicker日期选择器的使用和获取选择的年月日
  5. SpringBoot2.1.9 多数据源JDBC配置
  6. Linux Kbuild文档 2
  7. 信息学奥赛一本通(1229:电池的寿命)
  8. NOIP2016普及组第一题:买铅笔
  9. matlab引入外部数据,matlab引入外部数据
  10. 从字符串中检索字符实现翻页
  11. JavaScript 数字前补“0”的五种方法
  12. 为什么给他们讲WP的技术秘密
  13. 【POJ-2452】Sticks Problem【二分右端点+线段树】
  14. JAVA王思聪吃热狗程序_王思聪吃热狗什么梗?
  15. Leetcode——495. Teemo Attacking
  16. 慢就是快的人生哲理_感悟人生:慢是一种心态
  17. [UE4]接入steam sdk的plugin,可以获取到用户id和name,steam userid playerid
  18. 超星高级语言程序设计实验作业 (实验04 数组及其在程序设计中的应用)(二)
  19. 计算机视觉基础理论知识
  20. 通用SSM项目环境搭建详细教程

热门文章

  1. 学习Python你必须了解的lenna小姐姐
  2. 面试中遇到的java笔试题
  3. android清除图案锁 位置,安卓手机清除锁屏密码、锁屏图案的教程
  4. java性能调优_Java性能调优常用手段
  5. 【明解C语言】之函数详解《上篇》
  6. Ps中的图片如何在手机上在线预览
  7. 100道MySQL数据库经典面试题解析(收藏版)
  8. 关于android RTP驱动的问题
  9. C语言面试必问的经典问题(纯”gan“货)
  10. 家庭宽带光猫改桥接模式教程-淇云博客