ホームページ > バックエンド開発 > PHPの問題 > PHPでパスワードを記憶するようにCookieを設定する方法

PHPでパスワードを記憶するようにCookieを設定する方法

藏色散人
リリース: 2023-03-12 14:28:01
オリジナル
3364 人が閲覧しました

php でパスワードを記憶するように Cookie を設定する方法: 1.login.php ページでフォームを設定します; 2. ログイン ページのフォーム情報を確認し、Cookie を作成します; 3. セッションを確認し、Cookie を使用して割り当てます価値観、それだけです。

PHPでパスワードを記憶するようにCookieを設定する方法

#この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 パソコン

php でパスワードの記憶を実現次回から自動的にログイン

このブログでも「ログイン状態を記憶する」機能を実装するための方法について書いています。セッションはユーザー情報を割り当て、セッションを検出し、有効期限が切れた後に Cookie を使用して値を割り当てます。
実装プロセス中、インターネット上のいくつかのコード投稿に基づいて、次のコードが整理されました。 さらに、PHP ログインパスワードの記憶の実装アイデアを参照できます。

login.php ページで、フォーム設定を実行します。

<?php
session_start();
?>
<form  action="login_chk.php" method="post">
  
ログイン後にコピー

login_chk.php ページが使用されます。ログイン ページのフォーム情報を確認して Cookie を作成するには:

 1 <?php 2 header("Content-type:text/html;charset=gb2312"); 3 
 4 session_start(); 5 include_once("conn/conn.php");  //加载数据库连接文件 6 
 7 error_reporting(0); 8 
 9 if(empty($_POST[&#39;username&#39;]) or empty($_POST[&#39;pass&#39;])){10     echo "<script language=&#39;javascript&#39;>alert(&#39;用户名和密码不能为空!&#39;);history.go(-1);</script>";11 }12 else{ 
13     $username=$_POST[&#39;username&#39;];14     $pass=$_POST[&#39;pass&#39;];15     $password = md5($pass);16     $remember = $_POST[&#39;remember&#39;]; 
17     
18     $testrst = sqlsrv_query($conn, "select * from Employee where name like &#39;$username&#39; or number like &#39;$username&#39;");    //执行查询操作  
19     
20     if(!empty($remember)){     //如果用户选择了,记录登录状态就把用户名和加了密的密码放到cookie里面 
21         setcookie("username", $username, time()+3600*24*30); 
22         setcookie("password", $pass, time()+3600*24*30); 
23     }  
24     
25     
26     
27      
28     
29     if(sqlsrv_has_rows($testrst)){30         
31         $rst = sqlsrv_query($conn, "select * from Employee where (name like &#39;$username&#39; or number like &#39;$username&#39;) and pwd = &#39;$password&#39;");32         
33         
34         if(sqlsrv_has_rows($rst)){                                                              //判断登录用户名和密码是否正确35             $adminrow = sqlsrv_fetch_array($rst);37             $userwhethe = 0;38             $_SESSION[&#39;id&#39;]=$adminrow[0];      
41             $_SESSION[&#39;number&#39;]=$adminrow[1];42             $_SESSION[&#39;name&#39;]=$adminrow[2];43             if($username == $adminrow[1]){44               $_SESSION[&#39;type&#39;] = 1;45             }else{46                $_SESSION[&#39;type&#39;] = 2;47             }57 
59               echo "<meta http-equiv=\"refresh\" content=\"0;url=menu.php\" />";60 64         }else{65           echo "<script>alert(&#39;密码错误,请重新登录。&#39;);history.go(-1);</script>";66         }67    }else{68        echo "<script>alert(&#39;该用户名不存在!,请重新登录。&#39;);history.go(-1);</script>";69    }70 }71 
72 ?>
ログイン後にコピー

menu.php およびその他の機能ページはセッションをチェックします:

<?php
session_start();
include_once("conn/conn.php");
error_reporting(0);
if(empty($_SESSION[&#39;name&#39;]) and empty($_SESSION[&#39;id&#39;])){              //判断当前用户是否为登录状态
echo "<script>alert(&#39;请登录后再进行执行操作!&#39;);history.go(-1);</script>";
}else{
?>
网页主体
?>
ログイン後にコピー

セッションのチェックと割り当て用の Cookie の無効化については、 Index1.php (インデックス確認ページ) :

 1 <?php 2 session_start(); 3 
 4  if(empty($_SESSION[&#39;username&#39;])){                                      //检查一下session是不是为空 
 5      if(empty($_COOKIE[&#39;username&#39;]) || empty($_COOKIE[&#39;password&#39;])){  
 6         header("location:login.php");                         
 7      }else{                                                               
 8         $_SESSION[&#39;name&#39;] = $_COOKIE[&#39;username&#39;];   
 9         header("location:menu.php"); 
10     } 
11       
12  }13 ?>
ログイン後にコピー

に実装されています。 また、ユーザーがシステムからログアウトするか、ログアウトして再度ログインする必要があることを考慮して、ログアウトページ logout.php:

<?php
session_start();
unset($_SESSION[&#39;username&#39;]);
unset($_SESSION[&#39;password&#39;]);
setcookie(&#39;username&#39;,&#39;&#39;,0);
setcookie(&#39;password&#39;,&#39;&#39;,0);
header("location:index.php");
?>
ログイン後にコピー

導入後の利用はスムーズです。ただし、パスワードの Cookie とセッションの保存はあまり適切ではなく、パスワード フォームはユーザーのログイン インターフェイスにデフォルトで保存されないため、この機能のこの点はまだ改善の必要があります。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPでパスワードを記憶するようにCookieを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート