Heim  >  Artikel  >  Backend-Entwicklung  >  PHP verwendet Cookies, um Beispiele für Anmeldestatuscodes zu speichern

PHP verwendet Cookies, um Beispiele für Anmeldestatuscodes zu speichern

怪我咯
怪我咯Original
2017-07-10 10:08:061479Durchsuche

In diesem Artikel wird hauptsächlich vorgestellt, wie PHP Cookies verwendet, um den Anmeldestatus zu speichern. In diesem Artikel wird die originellste Methode zum Speichern des Anmeldestatus verwendet, wobei drei Schritte und ein spezifischer Implementierungscode angegeben werden Freunde können sich darauf beziehen

Um die Funktion des Merkens von Passwörtern und der automatischen Anmeldung zu realisieren, werden die meisten unserer Daten durch die Verwendung von Cookies auf der Clientseite implementiert. Auch Freunde in Not können darauf verweisen.

Die Lösung für PHP, sich Passwörter zu merken und sich automatisch anzumelden, ist eigentlich der Betrieb von Sitzung, Cookies

Überprüfen Sie, ob der Benutzer angemeldet ist

Der Code lautet wie folgt:

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

Zweitens übermittelt der Benutzer Anmeldeinformationen

Der Code lautet wie folgt:

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");  
}  
}  
}

Drittens, wenn der Benutzer auf klickt, um zu beenden , löschen Sie den aufgezeichneten Anmeldestatus

Der Code lautet wie folgt:

//退出登录 
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);  
}  
}

Einfaches Versionsbeispiel

Der Code lautet wie folgt:

<?
//读取COOKIE的用户名和密码的值即可
if($_COOKIE[&#39;uname&#39;]!=&#39;&#39;){$CKUNAME =  $_COOKIE[&#39;uname&#39;];}
if($_COOKIE[&#39;pwd&#39;]!=&#39;&#39;){$CKPWD =  $_COOKIE[&#39;pwd&#39;];}
echo $CKUNAME;
echo &#39;<br>&#39;;
echo $CKPWD;
?>
<form id="form1" name="form1" method="post" action="">
    <input type="text" name="uname" id="uname" value="<?=$CKUNAME;?>" /> <input
       type="password" name="pwd" id="pwd" value="<?=$CKPWD;?>" /> <input
       name="remember" type="checkbox" value="1" <? if($CKUNAME!=&#39;&#39;){?>
       checked="checked" <? } ?> /> 记住我! <input type="submit" name="button"
       id="button" value="登录" />
</form>
<?
//登录,将用户名和密码存入到COOKIE
if($_POST[&#39;button&#39;]!=&#39;&#39;){
    $uname = $_POST[&#39;uname&#39;];
    $pwd = $_POST[&#39;pwd&#39;];
    //如果输入的加密密码和COOKIE中不一样,那么就加密
    if($pwd!=$CKPWD){$pwd = md5($pwd);}
    $remember = $_POST[&#39;remember&#39;];
    if($remember==1){
       setcookie("uname", $uname, time()+3600*24*30);
       setcookie("pwd", $pwd, time()+3600*24*30);
    }
}
?>

Das obige ist der detaillierte Inhalt vonPHP verwendet Cookies, um Beispiele für Anmeldestatuscodes zu speichern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn