<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
} else {
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>
このコードは、「if」制御構造が機能する方法の背後にあるロジックに逆らいます。しかし、私は多くのコードで同じことを見てきましたので、何らかの理由でそれは正しいに違いありません. しかし、私の論理はそうではないことを教えてくれます。
もちろん、"!isset($_SERVER['PHP_AUTH_USER']))
この変数がサーバーで設定されているかどうかをチェックする条件。設定されていないとしましょう。したがって、サーバーは HTTP 認証を要求する要求をクライアントに送信し、"header('WWW-Authenticate: Basic realm="My Realm"');"
私が正しいものを提供したとしましょう。この後、どういうわけか、制御構造は、および echo ステートメントと制御構造の残りの部分を"if"
スキップします。" header('HTTP/1.0 401 Unauthorized');"
どうしてこれなの?