ホームページ  >  記事  >  バックエンド開発  >  PHPがパスワードを記憶して自動ログインする機能を実装

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

WBOY
WBOYオリジナル
2016-07-25 09:04:261750ブラウズ
  1. //ユーザーがログインしているかどうかを確認します
  2. function checklogin(){
  3. if(emptyempty($_SESSION['user_info'])){ //セッションが空かどうかを確認します
  4. if (emptyempty ($_COOKIE['username']) || emptyempty($_COOKIE['password'])){ //セッションが空で、ユーザーがログインステータスの記録を選択しなかった場合
  5. header("location:login .php?req_url=" .$_SERVER['REQUEST_URI']); //ログイン ページに移動し、要求された URL を記録し、ログイン後にそのページにジャンプすると、優れたユーザー エクスペリエンスが得られます。
  6. }else{ //ユーザーはログイン状態を記憶することを選択しました
  7. $user = getUserInfo($_COOKIE['username'],$_COOKIE['password']) //ユーザーの個人情報を取得します
  8. if(empty( $ user)){ //ユーザー名とパスワードが間違っているため、情報が利用できません。ログインページに移動します
  9. header(”location:login.php?req_url=”.$_SERVER['REQUEST_URI']);
  10. } else{
  11. $_SESSION ['user_info'] = $user; // ユーザー名とパスワードが正しい場合は、ユーザーの個人情報をセッションに入力します
  12. }
  13. }
  14. }
  15. }
コードをコピーします

手順: バックグラウンドですべてのページにアクセスするときは、まず上記のチェックを実行する必要があります

2. ユーザーがログイン情報を送信する ユーザーがユーザー名とパスワードを入力すると、ここに送信されます。

  1. /**

  2. ユーザーが送信したログイン情報の検出
  3. リンク: http://bbs.it-home.org
  4. */
  5. $username = trim($_POST['username']);
  6. $password = md5(trim($_POST[ 'パスワード']));
  7. $validatecode = $_POST['validateCode'];
  8. $ref_url = $_GET['req_url'];
  9. $remember = $_POST['remember'];

  10. < ;p>$err_msg = ”;
  11. if($validatecode!=$_SESSION['checksum']){
  12. $err_msg = “確認コードが正しくありません”;
  13. }elseif($username==” || $password== ”){
  14. $err_msg = “ユーザー名もパスワードも空にすることはできません”;
  15. }else{
  16. $row = getUserInfo($username,$password);

  17. if(emptyempty($row) )){

  18. $err_msg = "ユーザー名とパスワードの両方が間違っています";
  19. }else{
  20. $_SESSION['user_info'] = $row;
  21. if(!emptyempty($remember)){ //ユーザーが選択した場合, ログイン状況を記録するには、Cookieにユーザー名と暗号化されたパスワードを入れます
  22. setcookie("username", $username, time()+3600*24*365);
  23. setcookie("password", $password, time() +3600*24*365);
  24. }
  25. if(strpos($ref_url,"login.php") === false){
  26. header("location:".$ref_url);
  27. }else{
  28. header(" location:main_user.php”);
  29. }
  30. }
  31. }
  32. $username = trim($_POST['username']);
  33. $password = md5(trim($_POST['password']));
  34. $validatecode = $_POST['validateCode'];
  35. $ref_url = $_GET['req_url'];
  36. $remember = $_POST['remember'];

  37. $err_msg = ”;

  38. if ($validatecode!=$_SESSION['checksum']){
  39. $err_msg = "認証コードが正しくありません";
  40. }elseif($username==" || $password=="){
  41. $err_msg = "ユーザー名とパスワードを空にすることはできません";
  42. }else{
  43. $row = getUserInfo($username,$password);

    gt;
  44. if(empty($row)){

  45. $err_msg = "ユーザー名とパスワードが正しくありません";
  46. }else{
  47. $_SESSION['user_info'] = $row;
  48. if(!empty($remember)){ //ユーザーが選択した場合、ユーザー名とパスワードが記録され、ログイン状況が記録されます Cookieにパスワードを入れてください
  49. setcookie("username", $username, time()+3600*24*365);
  50. setcookie("password", $password, time()+3600*24* 365);
  51. }
  52. if(strpos($ref_url,"login.php") === false){
  53. header("location:".$ref_url);
  54. }else{
  55. header("location:main_user.php ");
  56. }
  57. }
  58. }

コードをコピー

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

3. ユーザーがログアウトすると、ログインステータスの記録がクリアされます。 ユーザーがログアウトするためにクリックしたときは、悪意のある人がログイン情報を使用して損害を引き起こすことを防ぐために、必ず現在のログイン ステータスをクリアしてください。

  1. //ログアウト
  2. function logout(){
  3. unset($_SESSION['user_info']);
  4. if(!emptyempty($_COOKIE['username']) || emptyempty ($_COOKIE['パスワード'])){
  5. setcookie("ユーザー名", null, time()-3600*24*365);
  6. setcookie("パスワード", null, time()-3600*24*365) ;
  7. }
  8. }
  9. ?>
コードをコピー

さて、php を使用してパスワードを記憶し、自動的にログインする方法を紹介しました。何かを得ることができれば幸いです。 スクリプト スクールはあなたに捧げられます。



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