ホームページ >php教程 >php手册 >PHPでパスワードを記憶して自動ログインを実装するコード

PHPでパスワードを記憶して自動ログインを実装するコード

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-21 08:55:261127ブラウズ

パスワードを記憶することで PHP で自動ログインを実現する方法は複数あります。以下に示す 2 つの emptyempty は、コードの強調表示にバグがあるためです。皆さんのお役に立てれば幸いです。

1. ユーザーログインチェック

コードをコピー コードは次のとおりです:


//ユーザーがログインしているかどうかを確認します
function checklogin(){
if(emptyempty($_SESSION['user_info'])){ //セッションが空かどうかを確認します
if( emptyempty( $_COOKIE['username']) emptyempty($_COOKIE['password'])){ //セッションが空で、ユーザーがログインステータスの記録を選択しなかった場合
header(”location:login. php?req_url=”. $_SERVER['REQUEST_URI']); // ログイン ページに移動し、要求された URL を記録し、ログイン後にそのページにジャンプすると、優れたユーザー エクスペリエンスが得られます。
}else{ //ユーザーはログイン状態を記憶することを選択しました
$user = getUserInfo($_COOKIE['username'],$_COOKIE['password']) //ユーザーの個人情報を取得します
if(emptyempty($user)){ //ユーザー名とパスワードが間違っているため、情報が取得されません。ログイン ページに移動します
header(”location:login.php?req_url=”.$_SERVER[ 'REQUEST_URI']) ;
}else{
$_SESSION['user_info'] = $user; //ユーザー名とパスワードが正しい場合は、ユーザーの個人情報をセッションに入力します
}
}
}
}
//ユーザーがログインしているかどうかをチェックします
function checklogin(){
if(empty($_SESSION['user_info'])){ //チェックセッションが空かどうか
if(empty($_COOKIE['username']) empty($_COOKIE['password'])){ //セッションが空で、ユーザーがログイン ステータスの記録を選択しなかった場合
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; //ユーザー名とパスワードが正しい場合は、ユーザーの個人情報をセッションに入力します
}
}
}
}


バックエンドの各ページにアクセスするときは、最初に上記のチェックを実行する必要があります

次に、ユーザーはログイン情報を送信します
ユーザーがユーザー名を入力した後、ここに来て、

コードをコピーします コードは次のとおりです:


$username = trim($_POST['username']);
$password = md5(trim($_POST['password']));
$validatecode = $_POST['validateCode'] ;
$ref_url = $_GET['req_url'];
$remember = $_POST['remember'];

$err_msg = ”; _SESSION['checksum']){
$err_msg = "確認コードが間違っています";
}elseif($username==" $password=="){
$err_msg = "ユーザー名とパスワードの両方間違っています" 空にすることはできません";
}else{
$row = getUserInfo($username,$password);

if(emptyempty($row)); "ユーザー名とパスワードがすべて間違っています";
}else{
$_SESSION['user_info'] = $row;
if(!emptyempty($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");
}
}
}
$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 = "ユーザー名もパスワードも空にすることはできません";
$row = getUserInfo ($ username,$password);

if(empty($row)){
$err_msg = "ユーザー名とパスワードが両方とも間違っています";
$_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"); 🎜 >}
}
}


$ref_url についての簡単な説明: ユーザー A が b.php にアクセスしますが、ユーザー A はログインしておらず、ログイン ページ login.php にジャンプし、ログイン ページでユーザーとパスワードを入力してジャンプします。デフォルトのページ main_user.php にジャンプする代わりに、b.php ページに移動します。 b.php はユーザー A が行きたいページであるため、ユーザー エクスペリエンスは向上します。

3、ユーザーがクリックしてログアウトしたら、ログインステータスをクリアします。

なぜこれを行うかというと、他の誰かがあなたのコンピュータを使用すると、あなたの個人情報が漏洩する可能性があるからです。プライバシーが閲覧されるため、ユーザーがログアウトするために特にクリックした場合は、記録されたログイン状態をキャンセルするのが最善です。

コードをコピー コードは次のとおりです:


//ログアウト
function logout(){
unset($_SESSION['user_info']);
if(!emptyempty($_COOKIE['username']) emptyempty($_COOKIE[ 'パスワード'])){
setcookie("ユーザー名", null, time()-3600*24*365);
setcookie("パスワード", null, time()-3600*24*365) ;
}
}



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。