网站的会员登录功能经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求。这种记录密码并自动登录的功能一般都是通过cookie来实现的。本篇文章将简单说一下如何使用php实现该需求的。当然实现该需求的方法有N多种。 整个过程就是用户在登录的时候,如果选择了记住密码或者一周内免登陆等这些选项的时候,则在用户成功执行登陆操作之后,存储一个实现自动登录的cookie数据到客户端浏览器中,作为下次自动登录时验证用。验证通过则自动登录,否则需要输入用户名,密码进行登录。 具体示例代码如下(以下代码仅供参考): $username = trim($_POST['username']); $password = md5(trim($_POST['password'])); $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里面,该处可设置cookie的有效时间 setcookie("username",$username,time()+3600*24*365); setcookie("password",$password,time()+3600*24*365); } //执行登录成功后的页面跳转操作 } }另外在访问网站的每个页面时,都要先进行一遍如下函数的检查。 //检查用户是否登录 function checklogin(){ if(empty($_SESSION['user_info'])){//检查一下session是不是为空,判断用户是否已登录 if(empty($_COOKIE['username'])||empty($_COOKIE['password'])){//如果session为空,并且用户没有选择记录登录状 header("location:login.php");//转到登录页面 }else{//用户选择了记住登录状态 $user=getUserInfo($_COOKIE['username'],$_COOKIE['password']);//去取用户的个人资料 if(empty($user)){//用户名密码不对没到取到信息,转到登录页面 header("location:login.php"); }else{ $_SESSION['user_info']=$user;//登录成功,保存session,执行其它登录成功操作 } } } }
文章来源 CODETC,欢迎分享,转载请注明地址:
http://www.codetc.com/article-87-1.html
|