以下では、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)
説明:
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 を表示