[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 メーリングリストの案内