php中实现记住密码下次自动登录的例子
2023-06-13 09:15:30 时间
做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求。这种功能一般都是通过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");
}
}
}
另外在访问网站的每个页面时,都要先进行一遍如下函数的检查。
//检查用户是否登录
functionchecklogin(){
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里面
}
}
}
}
相关文章
- MySQL与PHP的基础与应用专题之增删改查
- 修改Nginx配置文件来隐藏index.php详解程序员
- 实现PHP与MongoDB的桥梁:连接数据库(php连接mongodb)
- 数据库MySQL 数据库的 PHP 扩展研究(php扩展mysql)
- PHP 操作 Redis:实现强大的数据存储 (php操作redis)
- PHPLinux实现网页服务:PHP篇(linux运行网页)
- PHP轻松构建高效应用——Redis实战指南(redis使用php)
- PHP配置指南:MySQL编码设置详解(php设置mysql编码)
- PHP技术防止MSSQL注入风险(php防止mssql注入)
- Linux定时执行PHP脚本,提高效率(linux定时执行php)
- 如何在PHP中使用MySQL数据库(mysql中php)
- Redis面试题与PHP配合(redis面试题 php)
- 用PHP实现Redis的键值存储(redis键值php)
- 用PHP实现Redis缓存一个实例(redis缓存实例php)
- 一个php作的文本留言本的例子(四)
- PHP和COM
- php生成随机密码的三种方法小结
- PHP开发中四种查询返回结果分析
- php!function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代码解密
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- 深入Nginx+PHP缓存详解
- php内核解析:PHP中的哈希表
- php获取客户端电脑屏幕参数的方法
- php向js函数传参的几种方法
- smarty模板引擎从php中获取数据的方法