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 相关文章推荐
Mysql的常用命令
Oct 09 PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
May 03 PHP
QueryPath PHP 中的jQuery
Apr 11 PHP
UCenter中的一个可逆加密函数authcode函数代码
Jul 20 PHP
smarty模板嵌套之include与fetch性能测试
Dec 05 PHP
header导出Excel应用示例
Jan 24 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
Jun 22 PHP
PHP高手需要要掌握的知识点
Aug 21 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
php用wangeditor3实现图片上传功能
Aug 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
初级的用php写的采集程序
2007/03/16 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
jquery遍历input取得input的name
2009/04/27 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
js实现在字符串中提取数字
2013/11/05 Javascript
jquery无刷新验证邮箱地址实现实例
2014/02/19 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
JS实现文档加载完成后执行代码
2015/07/09 Javascript
javascript中this关键字详解
2016/12/12 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
Django学习教程之静态文件的调用详解
2018/05/08 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
python 写一个文件分发小程序
2020/12/05 Python
COSETTE官网:奢华,每天
2020/03/22 全球购物
高校教师思想汇报
2014/01/11 职场文书
计算机专业优秀大学生自我总结
2014/01/21 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
物流管理专业求职信
2014/05/29 职场文书
查摆剖析材料范文
2014/09/30 职场文书
教师学期末个人总结
2015/02/13 职场文书
停电调休通知
2015/04/16 职场文书
员工表扬信怎么写
2015/05/05 职场文书
企业财务管理制度范本
2015/08/04 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
在pycharm中无法import所安装的库解决方案
2021/05/31 Python