ホームページ >バックエンド開発 >PHPチュートリアル >PHP ユーザーログイン検証コードの実装方法_PHP チュートリアル

PHP ユーザーログイン検証コードの実装方法_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:05:481249ブラウズ

以下では、Mysql データベース チュートリアルを使用してユーザーの ID を保存します。各アカウントのユーザー名とパスワードをデータベースから抽出し、$PHP_AUTH_USER 変数と $PHP_AUTH_PW 変数と比較してユーザーの信頼性を判断する必要があります。

まず、MySqlでユーザー情報を保存するデータベースを作成します

データベース名は XinXiKu 、テーブル名は user で、テーブル定義は次のとおりです。

コードを表示 1 テーブルを作成 user(
2 ID INT(4) NOT NULL AUTO_INCREMENT,
3 名前 VARCHAR(8) NOT NULL,
4 パスワード CHAR(8) NOT NULL,
5 主キー(ID)
6)

説明:

1. ID はゼロではなく、自動的に増加するシリアル番号です。

2. name はユーザー名であり、空にすることはできません。

3. パスワードはユーザーのパスワードであり、空にすることはできません。

以下はユーザー認証ファイルlogin.phpのチュートリアルです

コード 1 を表示 //ユーザー名が設定されているかどうかを確認します

2 if(!isset($PHP_AUTH_USER))

3{

4 header("WWW-Authenticate:Basic realm="認証関数"");
5 header("HTTP/1.0 401 Unauthorized");
6 echo "認証に失敗しました。ネットワーク リソースを共有する権限がありません!";
7 exit();
8}
9 /*データベースに接続*/
10 $db=mysqltutorial_connect("localhost","root","");
11 //データベースを選択します
12 mysql_select_db("XinXiKu",$db);
13 //ユーザーが存在するかどうかを確認します
14 $result=mysql_query("SELECT * FROM user where name='$PHP_AUTH_USER' およびpassword='$PHP_AUTH_PW'",$db);
15 if ($myrow = mysql_fetch_row($result))
16
17 //以下は本人確認成功後の関連操作です
18...
19}
他に20個
21
22 //認証が失敗したため、ユーザーに再入力を求めます
23 header("WWW-Authenticate:Basic realm="認証関数"");
24 header("HTTP/1.0 401 Unauthorized");
25 echo "認証に失敗しました。ネットワーク リソースを共有する権限がありません!";
26 出口();
27}
28?>

プログラムの説明:

プログラムでは、まず変数 $PHP_AUTH_USER が設定されているかどうかを確認します。設定されていない場合、スクリプトは HTTP 401 エラー番号ヘッダーを送信して、クライアントのブラウザに認証ウィンドウが表示され、ユーザー名と入力を求められます。入力が完了すると、接続データベースはユーザー名とパスワードが正しいかどうかを照会し、正しい場合はログインによる関連操作の実行を許可します。

機能の説明:

1. isset(): 変数に値が割り当てられているかどうかを判断するために使用されます。変数値が存在するかどうかに応じて、true または false を返します

2. header(): 特定の HTTP ヘッダーを送信するために使用されます。 header() 関数を使用する場合は、実際の出力を生成する HTML または PHP コードの前に必ずこの関数を呼び出してください。

3. mysql_connect(): MySQL サーバー接続を開きます。

4. mysql_db_query(): クエリ文字列 (クエリ) を MySQL データベースに送信します。

5. mysql_fetch_row(): 単一の列の各フィールドを返します。

2. セッションを使用してサーバー検証を実装します

認証が必要なページの場合は、Apache サーバー認証を使用するのが最善です。ただし、Apache サーバー検証のインターフェイスは十分に使いやすいものではありません。また、CGI モードの PHP および IIS 下の PHP は、Apache サーバーを使用して検証できません。このようにして、セッションを使用して異なるページ間でユーザーの ID を保存し、ID 検証を行うことができます。

バックエンドでは、上記の Mysql データベースを使用してユーザー情報を保存します。

最初にユーザーログインインターフェイスを作成します。ファイル名はlogin.phpで、コードは次のとおりです:

コード 1 を表示

2 ユーザー名:

3 パスワード:
4

5

login1.php は送信されたフォームを処理します。コードは次のとおりです:
コード 1 を表示 $db=mysql_connect("localhost","root","");
2 mysql_select_db("XinXiKu",$db);

3 $result=mysql_query("SELECT * FROM user where name='$name'、password='$pass'",$db);

4 if ($myrow = mysql_fetch_row($result))
5{
6 //登録ユーザー
7 session_start();
8 session_register("ユーザー");
9 $user=$myrow["user"];
10 // ID 検証が成功しました。関連する操作を実行します
11...
12}
他13個
14
15 echo "認証に失敗しました。ネットワーク リソースを共有する権限がありません!";
16}
17 ?>


ここで、ユーザーは後続の操作で **http://domainname/next.php?user=username ** を使用して認証をバイパスできることに注意してください。したがって、以降の操作では、まず変数が登録されているかどうかを確認する必要があります。登録されている場合は、対応する操作を実行します。登録されていない場合は、不正ログインとみなされます。関連するコードは次のとおりです:
コード 1 を表示 session_start();

2 if (!session_is_registered("user"))
3{
4 echo "認証に失敗しました。不正なログインです!";
5}
他6個
7
8 //関連する操作を実行するためのログインに成功しました
9...
10}
11 ?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/630746.html技術記事以下では、Mysql データベース チュートリアルを使用してユーザーの ID を保存します。 $PHP_AUTH_USER 変数と $PHP_AUTH_PW 変数と比較するために、データベースから各アカウントのユーザー名とパスワードを抽出する必要があります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。