[PHP-users 24444] Re2: MacOS Xに移したらphpコードが動かなくなった
"赤松 富美雄"
redpine @ iris.ne.jp
2005年 2月 7日 (月) 23:35:50 JST
ありがとうございます。
ビンゴ! でした。
多分 相当古い書き方を参考にしていたんでしょうね。
下記のように直したらBasic認証でログインできるようになりました。
if (!isset( $_SERVER['PHP_AUTH_USER'] )) {
header('WWW-Authenticate: Basic realm="Test Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'ユーザーの認証が必要です。';
exit;
} else{
if (( $_SERVER['PHP_AUTH_USER'] != $ID ) || ( $_SERVER['PHP_AUTH_PW'] != $PAS)) {
header('WWW-Authenticate: Basic realm="Test Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'IDかパスワードが入力されていないか間違っています。';
exit;
} else {
認証成功時の処理;
}
}
ただまだちょっと気になる動作をしています。
最初の if (!isset( $_SERVER['PHP_AUTH_USER'] )) {
のところなのですが、PHP_AUTH_USER 空っぽ、
つまりIDを何も入力せず送ったとき、
ユーザーの認証が必要です のメッセージが表示されないのです。
三回空欄のまま繰り返すと、メッセージが表示されます。
下記のように直してもダメでした。
if ( $_SERVER['PHP_AUTH_USER'] == "") {
一応動いているのでいいといえば良いのですが、
なんとなく気持ち悪いですね。
何も入っていないときは、Apacheとかの方で何か処理しているのかなぁ?
ともかく 本当に助かりました。
ありがとうございます。
-----------------------------
RED.PINE's Office
赤松 富美雄(Tomio Akamatsu)
redpine @ redpine.jp
-----------------------------
PHP-users メーリングリストの案内