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中一个控制字符串输出的函数
Oct 09 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
Jun 20 PHP
php自定义函数截取汉字长度
May 15 PHP
php socket客户端及服务器端应用实例
Jul 04 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
PHP屏蔽关键字实现方法
Nov 17 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
Apr 04 PHP
PHP常见数组排序方法小结
Aug 20 PHP
PHP观察者模式定义与用法实例分析
Mar 22 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 PHP
php7 图形用户界面GUI 开发示例
Feb 22 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
PHP根据IP判断地区名信息的示例代码
2014/03/03 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
django接入新浪微博OAuth的方法
2015/06/29 Python
Python变量和数据类型详解
2017/02/15 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
快速查找Python安装路径方法
2020/02/06 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
自我鉴定思想方面
2013/10/07 职场文书
理工科学生的自我评价
2013/12/15 职场文书
党员干部承诺书范文
2014/03/25 职场文书
作风大整顿心得体会
2014/09/10 职场文书
学生党员检讨书范文
2014/12/27 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
心灵点滴观后感
2015/06/02 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
js实现自动锁屏功能
2021/06/02 Javascript
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript