パスワードを記憶することで 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) ;
}
}