Home  >  Article  >  Backend Development  >  php使用cookie实现记住登录状态_php实例

php使用cookie实现记住登录状态_php实例

WBOY
WBOYOriginal
2016-06-07 17:13:20707browse

要实现记住密码自动登录的功能我们大多数据都是利用了客户端的cookies来实现,我们利用php也不例外,有需要的朋友可以参考一下。

php制作记住密码自动登录的解决思路,其实也就是对session,cookies的操作

一、检查用户是否登录

复制代码 代码如下:

//检查用户是否登录
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里面 
     } 
     } 
     } 
}

二,用户提交登录信息
复制代码 代码如下:

username = trim($_POST['username']); 
$password = md5(trim($_POST['password'])); 
$validatecode = $_POST['validateCode']; 
$ref_url = $_GET['req_url']; 
$remember = $_POST['remember']; 
 
$err_msg = ''; 
if($validatecode!=$_SESSION['checksum']){ 
$err_msg = "验证码不正确"; 
}elseif($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 logout(){ 
unset($_SESSION['user_info']); 
if(!empty($_COOKIE['username']) || !empty($_COOKIE['password'])){ 
setcookie("username", null, time()-3600*24*365); 
setcookie("password", null, time()-3600*24*365); 

}

四、简洁版实例

复制代码 代码如下:

//读取COOKIE的用户名和密码的值即可
if($_COOKIE['uname']!=''){$CKUNAME =  $_COOKIE['uname'];}
if($_COOKIE['pwd']!=''){$CKPWD =  $_COOKIE['pwd'];}
echo $CKUNAME;
echo '
';
echo $CKPWD;
?>

           type="password" name="pwd" id="pwd" value="" />        name="remember" type="checkbox" value="1"
       checked="checked" /> 记住我!        id="button" value="登录" />

//登录,将用户名和密码存入到COOKIE
if($_POST['button']!=''){
    $uname = $_POST['uname'];
    $pwd = $_POST['pwd'];
    //如果输入的加密密码和COOKIE中不一样,那么就加密
    if($pwd!=$CKPWD){$pwd = md5($pwd);}
    $remember = $_POST['remember'];
    if($remember==1){
       setcookie("uname", $uname, time()+3600*24*30);
       setcookie("pwd", $pwd, time()+3600*24*30);
    }
}
?>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn