[PHP-users 10783] Basic認証と値の保持について。

NIC php-users@php.gr.jp
Sun, 13 Oct 2002 03:46:47 +0900


どうもはじめまして、古屋と申します。

今回、RPMで入れていたPHP4をソースからのもの(Ver4.23)に入れ直したのですが、
ちょっと問題にあたってしまいました。
LinuxのBasic認証のパスワードを変更するスクリプトで、先頭に$PHP_AUTH_USER
が存在しなければ認証ダイアログを表示するようにしています。しかし、そのス
クリプト自体をBasic認証の保護下にあるディレクトリに置いていて、そのBasic
認証はパスしているにも関わらずダイアログが出てしまい困っています。
つまり、Basic認証時に入力したユーザー名とパスワードがグローバール変数$PHP_AUTH_USER
として得られていないという事です。

いろいろ調べてみたらIE自体のバグにも影響するようなことが書いてあったので
すが…PHPを入れ直す前には、ちゃんと動作していました。
この$PHP_AUTH_USERや$PHP_AUTH_PWなどがグローバル変数として得られない原因
は別に何かあるのでしょうか?

また、特にBasic認証などを施していないディレクトリにおいて以下のようなス
クリプトを置いて実行したのですが、ダイアログは出るものの…何を入力しても
認証不可の状態になってしまいます。
.password等のパスワードファイルも特に置いてないで認証ダイアログを出させ
ると何を入力しても失敗になってしまうのでしょうか?

---------------スクリプト---------------
<?php
if(!isset($PHP_AUTH_USER)){ //$PHP_AUTH_USERには認証されたユーザー名が入っ
ている
	header("WWW-Authenticate: Basic realm=\"Private\"");
	header("HTTP/1.0 401 Unauthorized");
	exit();
}else{
	echo("OK!!");
}
?>
----------------------------------------
※何を入力してもexit();で終了してしまいます。


いろいろ試してみたのですが、どうも上手くいきません。
何か間違っているようなところがあったらご指摘頂けると助かりますので、よろ
しくお願い致します。