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 相关文章推荐
joomla内置的表单验证功能使用方法
Jun 11 PHP
php中函数的形参与实参的问题说明
Sep 01 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
Jan 11 PHP
深入PHP数据加密详解
Jun 18 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
PHP实现对文本数据库的常用操作方法实例演示
Jul 04 PHP
php简单获取文件扩展名的方法
Mar 24 PHP
PHP开发中AJAX技术的简单应用
Dec 11 PHP
php截取视频指定帧为图片
May 16 PHP
Laravel框架实现多数据库连接操作详解
Jul 12 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
Aug 03 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 得到根目录的 __FILE__ 常量
2008/07/23 PHP
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
php限制上传文件类型并保存上传文件的方法
2015/03/13 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
2017/06/11 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
JavaScript格式化json和xml的方法示例
2019/01/22 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
Python将多个excel表格合并为一个表格
2021/02/22 Python
PyQt5每天必学之带有标签的复选框
2018/04/19 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
python 反向输出字符串的方法
2018/07/16 Python
python保存网页图片到本地的方法
2018/07/24 Python
python3.4爬虫demo
2019/01/22 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
在keras里实现自定义上采样层
2020/06/28 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
生产车间主管岗位职责
2013/12/28 职场文书
消防器材管理制度
2014/01/28 职场文书
《草虫的村落》教学反思
2014/02/16 职场文书
党支部书记岗位职责
2015/02/15 职场文书
财务会计求职信范文
2015/03/20 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
经典祝酒词大全
2015/08/12 职场文书