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无刷新上传文件实现代码
Sep 19 PHP
求PHP数组最大值,最小值的代码
Oct 31 PHP
Ping服务的php实现方法,让网站快速被收录
Feb 04 PHP
php后退一页表单内容保存实现方法
Jun 17 PHP
php cc攻击代码与防范方法
Oct 18 PHP
PHP数据类型的总结分析
Jun 13 PHP
php将access数据库转换到mysql数据库的方法
Dec 24 PHP
PHP实现简单爬虫的方法
Jul 29 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 PHP
php实现当前页面点击下载文件的简单方法
Sep 22 PHP
php+mysql查询实现无限下级分类树输出示例
Oct 03 PHP
简单谈谈PHP中的Reload操作
Dec 12 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中在PDO中使用事务(Transaction)
2011/05/14 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
php测试kafka项目示例
2020/02/06 PHP
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
JavaScript 事件冒泡简介及应用
2010/01/11 Javascript
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
浅谈关于angularJs中使用$.ajax的注意点
2017/08/12 Javascript
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
python实现将汉字保存成文本的方法
2018/11/16 Python
解决python 上传图片限制格式问题
2019/10/30 Python
如何一键升级Python所有包
2020/11/05 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
护士自我评价范文
2014/01/25 职场文书
单位委托书范本
2014/04/04 职场文书
装修施工安全责任书
2014/07/24 职场文书
个人求职自荐信范文
2015/03/06 职场文书
nginx部署多前端项目的几种方法
2021/05/25 Servers