PHPでパスワードを記憶して次回から自動的にログインする例、パスワードを記憶して自動的にログインする
Web サイトを構築するとき、パスワードを覚えておく必要がある、次回から自動的にログインする、1 週間以内にログインする必要がない、1 か月以内にログインする必要がない、というニーズによく遭遇します。この機能は通常、Cookie を通じて実装されます。この記事では、php を使用してこの要件を達成する方法について簡単に説明します。もちろん、この要件を達成するには多くの方法があります。
全体のプロセスは、ユーザーがログインするとき、パスワードを記憶することを選択した場合、またはユーザーが正常にログインした後、1週間ログインする必要がない場合などに、自動ログインを実装するCookieのデータが保存されます。データベースのユーザー テーブルに保存され、次回の自動ログイン時の検証に使用されます。検証に合格した場合は、自動的にログインします。それ以外の場合は、ログインするためにユーザー名とパスワードを入力する必要があります。保存された Cookie の値はランダムなコードを取ることができます。
具体的なサンプルコードは以下のとおりです:
コードをコピーします コードは次のとおりです:
$username=trim($_POST['username']);
$password=md5(trim($_POST['パスワード']));
$ref_url=$_GET['req_url'];
$remember=$_POST['remember'];//自動ログインするかどうか
$err_msg='';
if($ユーザー名==''||$パスワード==''){
$err_msg="ユーザー名とパスワードの両方を空にすることはできません";
}その他{
$row=getUserInfo($ユーザー名,$パスワード);
if(空($row)){
$err_msg="ユーザー名とパスワードの両方が正しくありません";
}その他{
$_SESSION['user_info']=$row;
if(!empty($remember)){// ユーザーが選択した場合は、ログイン ステータスを記録し、ユーザー名と暗号化されたパスワードを Cookie に入れます
setcookie("ユーザー名",$ユーザー名,time()+3600*24*365);
setcookie("パスワード",$password,time()+3600*24*365);
}
if(strpos($ref_url,"login.php")===false){
header("location:".$ref_url);
}その他{
Header("location:main_user.php");
}
}
}
また、ウェブサイトの各ページにアクセスする際には、まず以下の機能を確認する必要があります。
コードをコピーします コードは次のとおりです:
// ユーザーがログインしているかどうかを確認します
関数 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']);
}その他{
$_SESSION['user_info']=$user;//ユーザー名とパスワードが正しい場合は、ユーザーの個人情報をセッションに入力します
}
}
}
}
ユーザーがログインしているかどうかは通常 Cookie によって判断されるため、この実装は一般に Cookie 時間の設定に依存します。ログイン状態を維持するかどうかを最初に決定します。ログイン状態を維持する場合は、Cookie を設定するときに時間を長く設定します。 1 日、1 か月、または 1 年など、必要な長さに設定できます。
setcookie("TestCookie", $value,time()+3600);
ここで、time()+3600 は、今から 1 時間ログインし続けることを意味します。
テクノロジーをよく学びましょう。SESSION と COOKIE は、この問題を解決するために設計されています。
http://www.bkjia.com/PHPjc/907280.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/907280.html技術記事 php でパスワードを記憶し、次回から自動的にログインする例 パスワードを記憶し、次回から自動的にログインする Web サイトを構築するときに、パスワードを記憶して次回から自動的にログインする必要があることがよくあります。 1週間…