ホームページ > バックエンド開発 > PHPチュートリアル > 路上での初心者のための運転スキル 路上での PHP 初心者のための運転スキル (7)

路上での初心者のための運転スキル 路上での PHP 初心者のための運転スキル (7)

WBOY
リリース: 2016-07-29 08:34:55
オリジナル
1014 人が閲覧しました

シンプルなインタラクティブな Web サイトを構築する (3)
6. パスワード検証
おそらく、写真コレクションを Web サイトに掲載し、親しい友人だけに見せたいと考えている場合、パスワード検証プログラムが必要です。
6.1 HTTP検証に基づく
PHPを使用してパスワード検証を実装するにはどうすればよいですか?短い PHP コードを使用して、関数 header() を使用して HTTP ヘッダーを送信することで認証を強制することができます。これにより、クライアントのブラウザーにユーザー名とパスワードを入力するためのダイアログ ボックスが表示されます。 PHP では、クライアント ユーザーが入力した情報は、サーバーに送信された後、3 つのグローバル変数 $PHP_AUTH_USER、$PHP_AUTH_PW、および $PHP_AUTH_TYPE に自動的に保存されます。これらの変数を使用すると、実装がデータ ファイルまたはデータベースに保存するユーザー アカウント情報に基づいてユーザーの ID を認証できます。
ただし、ここでユーザーは、Apache モジュール モードで実行している場合にのみ、PHP スクリプトが 3 つの変数 $PHP_AUTH_USER、$PHP_AUTH_PW、$PHP_AUTH_TYPE を使用できることに注意する必要があります。 PHPをCGIモードで使用している場合、HTTPによる認証機能は実装できません。
6.2 次に、PHPを使用してユーザーの本人確認を行う方法を詳しく紹介します。
次の例では、$PHP_AUTH_USER と $PHP_AUTH_PW という 2 つの変数を使用して、参加者が合法であるかどうかを検証し、入場を許可します。この例では、ログインを許可されるユーザー名とパスワードのペアはそれぞれ tnc と Nature です:
if(!isset($PHP_AUTH_USER))
{
Header("WWW-Authenticate: Basic realm="My Realm " ");
Header("HTTP/1.0 401 Unauthorized");
echo "ユーザーがキャンセルボタンを押した場合に送信するテキスト"
}
else
if ( !($PHP_AUTH_USER=="tnc") && $PHP_AUTH_PW=="nature") )
{
// ユーザー名とパスワードの組み合わせが間違っている場合は、再認証を強制します
Header("WWW-Authenticate: Basic realm="My Realm""); "HTTP /1.0 401 無許可
echo" エラー: $ php_auth_user/$ php_auth_pw が無効です。 "; & gt; 参照では、上記のスニペットのような明示的なユーザー名とパスワードのペアは使用されませんが、代わりにデータベースまたは暗号化されたパスワードが使用されます。ファイルにアクセスします。
6.3 指定された検証情報に基づいてユーザーの身元を確認する
まず、次のコードを使用して、ユーザーがユーザー名とパスワードを入力したかどうかを判断し、ユーザーが入力した情報を表示します。
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="My Private Stuff"');
header('HTTP/1.0 401 Unauthorized');認証が必要です。';
exit;
}
else {
echo "

このユーザー名を入力しました: $PHP_AUTH_USER

次のパスワードを入力しました: $PHP_AUTH_PW

認証の種類は次のとおりです: $ PHP_AUTH_TYPE

";
}
?>
説明:
isset() 関数は、変数に値が割り当てられているかどうかを判断するために使用されます。変数値が存在するかどうかに応じて、true または false を返します。
header() 関数は、特定の HTTP ヘッダーを送信するために使用されます。 header() 関数を使用する場合は、実際の出力を生成する HTML または PHP コードの前に必ずこの関数を呼び出してください。
上記のコードは非常に単純で、ユーザーが入力したユーザー名とパスワードを実際の値に基づいて効果的に検証するものではありませんが、少なくとも PHP を使用してクライアント側で入力ダイアログ ボックスを生成する方法は理解できました。
次に、指定された認証情報に基づいてユーザーの本人確認を行う方法を見てみましょう。コードは次のとおりです。
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="My Private Stuff"');
header('HTTP/1.0 401 Unauthorized) ');
echo '認証が必要です。';
終了;
else if (isset($PHP_AUTH_USER)) {
if (($PHP_AUTH_USER != "admin") || ($PHP_AUTH_PW != "123") ) {
header('WWW-Authenticate: Basic realm="My Private Stuff"');
echo '認証が必要です。'
} else {
echo 「< あなたは許可されています! 情報。その後、ユーザーが入力した情報が指定されたユーザー アカウント admin/123 と一致するかどうかを判断して、ユーザーにアクセス権を付与するか、正しい情報の再入力を促します。この方法は、すべてのユーザーが同じログイン アカウントを使用するサイトで機能します。
6.4 別の簡単なパスワード検証
Windows 98 で PHP スクリプトを作成して実行する場合、または Linux でデフォルト設定に従って PHP を CGI プログラムとしてインストールする場合、上記の PHP プログラムを使用して、検証機能。このため、Wubian は別の簡単なパスワード検証方法を提供します。あまり実用的ではありませんが、学習には適しています。
$password = "123";
// パスワードを確認
if($pass != $password)
{
echo "パスワードの管理</ title> ;<script type="text/javascript" src="/js/jquery.3.5.2.min.m.js"></script> </head><div style="position: fixed;right: 0;top:100px;width: 125px; z-index:2000;"><div ><a target="_blank" rel="nofollow" href="https://www.520xingyun.com/from/188bet.php" ><img width="120px" height="550px" src="https://www.520xingyun.com/images/188_120.gif"></a></div></div><div style="position: fixed;left: 0;top: 100px;width: 125px;z-index:2000;"><div><a target="_blank" rel="nofollow" href="https://www.520xingyun.com/from/188bet.php"><img width="120px" height="550px" src="https://www.520xingyun.com/images/188_120.gif"></a></div></div><body>"; <br>echo "<form method="post" action=$PHP_SELF>"; <br>echo "管理パスワードを入力してください:<br>"; <br>echo " < input type="password" name="pass">"; <br>echo "<input type="submit" value="Continue">"; <br>echo "</form></body< /html>"; <br>} <br>else <br>{ <br>echo "<html><head><title>おめでとうございます。パスワード検証に合格しました
";
echo "< script>";
echo 'window.location="http://gophp.heha.net/test/index.php3"';
# パスワード認証後に転送されたページ
echo "";
}
?>

以上、路上での PHP 初心者のための運転スキル (7) を紹介しました。これは、PHP チュートリアルに興味のある友人にとって役立つことを願っています。

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