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


Posted in PHP onNovember 06, 2014

做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求。这种功能一般都是通过cookie来实现的。本篇文章将简单说一下如何使用php实现该需求的。当然实现该需求的方法有N多种。

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

具体示例代码如下:

$username=trim($_POST['username']);

$password=md5(trim($_POST['password']));

$ref_url=$_GET['req_url'];

$remember=$_POST['remember'];//是否自动登录标示

$err_msg='';

if($username==''||$password==''){

 $err_msg="用户名和密码都不能为空";

}else{

 $row=getUserInfo($username,$password);

 if(empty($row)){

  $err_msg="用户名和密码都不正确";

 }else{

  $_SESSION['user_info']=$row;

  if(!empty($remember)){//如果用户选择了,记录登录状态就把用户名和加了密的密码放到cookie里面

   setcookie("username",$username,time()+3600*24*365);

   setcookie("password",$password,time()+3600*24*365);

  }

  if(strpos($ref_url,"login.php")===false){

   header("location:".$ref_url);

  }else{

   header("location:main_user.php");

  }

 }

}

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

//检查用户是否登录

function checklogin(){

 if(empty($_SESSION['user_info'])){//检查一下session是不是为空

  if(empty($_COOKIE['username'])||empty($_COOKIE['password'])){//如果session为空,并且用户没有选择记录登录状

   header("location:login.php?req_url=".$_SERVER['REQUEST_URI']);//转到登录页面,记录请求的url,登录后跳转过去,用户体验好。

  }else{//用户选择了记住登录状态

   $user=getUserInfo($_COOKIE['username'],$_COOKIE['password']);//去取用户的个人资料

  if(empty($user)){//用户名密码不对没到取到信息,转到登录页面

   header("location:login.php?req_url=".$_SERVER['REQUEST_URI']);

  }else{

   $_SESSION['user_info']=$user;//用户名和密码对了,把用户的个人资料放到session里面

  }

  }

 }

}
PHP 相关文章推荐
基于PHP+MySQL的聊天室设计
Oct 09 PHP
PHP Class&Object -- 解析PHP实现二叉树
Jun 25 PHP
PHP传参之传值与传址的区别
Apr 24 PHP
PHP实现的QQ空间g_tk加密算法
Jul 09 PHP
PHP处理会话函数大总结
Aug 05 PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 PHP
PHP实现对xml的增删改查操作案例分析
May 19 PHP
使用YII2框架实现微信公众号中表单提交功能
Sep 04 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
微信公众号之主动给用户发送消息功能
Jun 22 PHP
php解决约瑟夫环算法实例分析
Sep 30 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 PHP
php网站被挂木马后的修复方法总结
Nov 06 #PHP
调试PHP程序的多种方法介绍
Nov 06 #PHP
php实现singleton()单例模式实例
Nov 06 #PHP
php使用session二维数组实例
Nov 06 #PHP
php函数serialize()与unserialize()用法实例
Nov 06 #PHP
php实现webservice实例
Nov 06 #PHP
php的dl函数用法实例
Nov 06 #PHP
You might like
初品cakephp 入门基础
2012/02/16 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
js 字符串转化成数字的代码
2011/06/29 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
react router4+redux实现路由权限控制的方法
2018/05/03 Javascript
JavaScript实现简单计算器
2020/03/19 Javascript
基于JavaScript实现控制下拉列表
2020/05/08 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
Python编程中time模块的一些关键用法解析
2016/01/19 Python
获取python文件扩展名和文件名方法
2018/02/02 Python
Django框架实现的分页demo示例
2019/05/25 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
工作室成员个人发展规划范文
2014/01/24 职场文书
搞笑征婚广告词
2014/03/17 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
优秀团支部申报材料
2014/12/26 职场文书
大学生个人简历自我评价
2015/03/11 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
浅谈JavaScript作用域
2021/12/06 Javascript
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js