0

私はPHPコーディングに少し慣れていません。そして、HTTP認証のトピックをカバーする本の章を読み進めようとしています。

しかし、ローカルホスト WAMP サーバーでこのコードを実行すると、フォームに適切に入力したにもかかわらず、ボックスが再びポップアップし続けます。

<?php
$username = 'admin';
$password = 'letmein';

if (isset($_SERVER['PHP_AUTH_USER']) &&
    isset($_SERVER['PHP_AUTH_PW']))
{
    if ($_SERVER['PHP_AUTH_USER'] == $username &&
        $_SERVER['PHP_AUTH_PW']   == $password)
        echo "You are now logged in";
    else die("Invalid username / password combination");
}
else
{
    header('WWW-Authenticate: Basic realm="Restricted Section');
    header('HTTP/1.0 401 Unauthorized');
    die ("Please enter your username and password");
}
?>

では、ブラウザに私の回答を受け入れさせるにはどうすればよいでしょうか?

本にヒントがあります:

最新のブラウザのセキュリティはますます厳しくなり、ブラウザの設定を変更しない限り、ローカル ファイル システムで HTTP 認証を簡単にテストできないレベルに達しています。これは、インターネットからダウンロードする可能性のある潜在的に悪意のあるファイルからユーザーを保護するためです (一般に、ローカル ファイルはより大きなセキュリティ リスクをもたらすため)。代わりに、このタイプの認証を使用するコードを記述したい場合は、インターネット接続を使用してリモート サーバーでテストを実行することをお勧めします。

では、リモート サーバーで自分の php スクリプトをテストするにはどうすればよいでしょうか。または、この機能を使用できるように自分の設定を変更できますか?

4

1 に答える 1

0

その発言はナンセンスです。のような Web サーバーと URL を使用してファイルにアクセスする限り、大きな違いはありhttp://localhost/...ません。file:///...コードを書くのに「リモート」サーバーは必要ありません。

この場合の問題は、Web サーバーが認証の処理に責任を感じており、PHP スクリプトがまったく関与していない可能性があります。値を変更してこれを確認realmし、ブラウザのポップアップに影響があるかどうかを確認できます。

それ以外の場合は、var_dump($_SERVER)受け取った値を確認します。

于 2013-05-27T12:41:32.280 に答える