ホームページ >バックエンド開発 >PHPチュートリアル >PHP フォームベースのパスワード認証と HTTP 認証の使用例、フォーム example_PHP チュートリアル
この記事の例では、PHP フォームベースのパスワード認証と HTTP 認証の使用方法について説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
PHP の HTTP 認証メカニズムは、PHP が Apache モジュールとして実行されている場合にのみ機能するため、この機能は CGI バージョンには適用されません。 Apache モジュールの PHP スクリプトでは、header() 関数を使用して「認証が必要」情報をクライアント ブラウザに送信し、ユーザー名とパスワードの入力ウィンドウをポップアップ表示させることができます。ユーザーがユーザー名とパスワードを入力すると、URL を含む PHP スクリプトによって事前定義された変数 PHP_AUTH_USER、PHP_AUTH_PW、および AUTH_TYPE が追加され、これら 3 つの変数がそれぞれユーザー名、パスワード、認証タイプに設定されます。事前定義された変数は、$_SERVER または $HTTP_SERVER_VARS 配列に保存されます。 「ベーシック」および「ダイジェスト」(PHP 5.1.0 以降) 認証方法をサポートします。興味のある方は header() 関数関連の情報を参照してください。
PHP バージョンの問題: $_SERVER などを含む Autoglobals グローバル変数は PHP 4.1.0 以降で有効であり、$HTTP_SERVER_VARS は PHP 3 以降で有効です。
以下は、ページでクライアント認証を強制するスクリプトの例です。
例 34-1. 基本的な HTTP 認証の例
こんにちは { $_SERVER [ 'PHP_AUTH_USER' ]} .
; echo "パスワードとして { $_SERVER [ 'PHP_AUTH_PW' ]} を入力しました。
} コードは次のとおりです:
上記の例では、PHP_AUTH_USER と PHP_AUTH_PW の値のみが出力されますが、実際のアプリケーションでは、ユーザー名とパスワードの有効性を確認したり、データベースのチュートリアルをクエリしたり、取得したりする必要がある場合があります。 dbm ファイルから。
一部の Internet Explorer ブラウザには独自の問題があることに注意してください。ヘッダーの順序が少し面倒なようです。現在、HTTP/1.0 401 を送信する前に WWW-Authenticate ヘッダーを送信すると、この問題が解決される可能性があるようです。PHP 4.3.0 では、従来の外部メカニズムで認証されたページからパスワードを取得するスクリプトを誰かが作成するのを防ぐために、特定のページで外部認証が有効で、セーフ モードがオンになっている場合、PHP_AUTH 変数はただし、いずれにせよ、REMOTE_USER を使用して外部認証されたユーザーを識別できるため、$_SERVER['REMOTE_USER'] 変数を使用できます。 設定手順:
PHP は、AuthType ディレクティブの有無を使用して、外部認証メカニズムが有効かどうかを判断します。 これでも、誰かが認証されていない URL を使用して、同じサーバー上の認証された URL からパスワードを盗むことを防ぐことはできないことに注意してください。
Netscape Navigator と Internet Explorer の両方のブラウザは、401 サーバー応答を受信すると、すべてのローカル ブラウザのドメイン全体の Windows 認証キャッシュをクリアします。これにより、ユーザーが事実上ログアウトされ、ユーザー名とパスワードの再入力が強制される可能性があります。このメソッドは、ログイン ステータスを「期限切れ」にするか、「ログアウト」ボタンの応答動作として使用します。
例 34-3. ユーザー名とパスワードの再入力を強制する HTTP 認証の例
コードをコピーします
ようこそ: { $_SERVER [ 'PHP_AUTH_USER' ]}
;
echo "古い: { $_REQUEST [ 'OldAuth' ]} " ;
echo "
それ以外は
{
指定された検証情報に基づいてユーザー ID を検証します:
まず、次のコードを使用して、ユーザーがユーザー名とパスワードを入力したかどうかを判断し、ユーザーが入力した情報を表示します。
次のユーザー名を入力しました: $PHP_AUTH_USER
次のパスワードを入力しました: $PHP_AUTH_PW
認証タイプは次のとおりです: $PHP_AUTH_TYPE
コードをコピーします
コードは次のとおりです:
if (!isset($PHP_AUTH_USER)) {
あなたは許可されています!
"; }PHP フォームベースのパスワード認証と HTTP 認証の使用例、フォーム例 この記事では、PHP フォームベースのパスワード認証と HTTP 認証の使用例について説明します。参考のためにみんなで共有してください。詳細な分析...