PHPで書かれたベーシック認証を行なうスクリプトをApacheサーバで実行できません!試しにレンタルサーバにアップロードしたら正常に動作したので、スクリプト自体に問題は無いと思いますが、ローカルサーバでは、認証可能なユーザ名、パスワードを入れても認証ダイアログが出続けてしまいます。。Apacheサーバで何らかの設定が必要なのでしょうか?よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/01/31 01:19:27
  • 終了:--

回答(3件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012006/01/31 01:30:44

http://www.atmarkit.co.jp/flinux/rensai/apache10/apache10b.html

ユーザー認証によるアクセス制限(ベーシック認証編)(2/2)

>認証可能なユーザ名、パスワード

URLを参考に、今一度、ファイルをチェックしてみてください。

id:tomodrop

Apacheを使用したベーシック認証というわけではないのです。。すみません。。PHPスクリプト内にユーザ名、パスワードを書いています。。。

2006/01/31 09:40:26
id:battan No.2

battan回答回数63ベストアンサー獲得回数12006/01/31 10:52:50

ポイント50pt

http://php.planetmirror.com/manual/ja/security.globals.php

PHP: グローバル変数の登録機能の使用法 - Manual

PHPのバージョンもソースも判らないので推測です。

外していたらポイント不要です。


認証ダイアログで入力されたユーザ名、パスワードが認証処理に渡っていないせいではないでしょうか?

register_globalsの設定を確認してみてください。「off」になっていることがセキュリティ上、推奨です。(4.2.0より古いバージョンではonになっています)

「off」になっている場合、変数を受け取る側のPHPプログラム内では$_POST[’userName’]という形で扱われます。(userNameのところは認証ダイアログで付けたテキスト名前になります)

id:tomodrop

デフォルトはOffになっていました。。

Onに切り替えても状況は変わりませんでしたが、、

どうも、グローバル変数関連のPHP設定に問題があるかもしれないですね。。もう少し調べてみます。

ちなみに、PHPはVer4.4.0です。

2006/01/31 15:45:42
id:elf No.3

えるふん回答回数76ベストアンサー獲得回数82006/01/31 11:05:10

ポイント50pt

http://php.net/register_globals

PHP: グローバル変数の登録機能の使用法 - Manual

認証処理が正常に処理できている(ように見えるサーバーはphp.iniなどでregister_globals =onになっていて,そうでないサーバーはregister_globals = offになっていたりするのではないでしょうか?

上記の仮定だと下記のコードのような実装は悩んでいらっしゃる問題に該当します.


<?php


if ( $PHP_AUTH_USER == ”user” && $PHP_AUTH_PW == ”pass”) {

// 認証が通った

}

?>

id:tomodrop

動作するサーバもregister_globalsはoffになっていました。。

PHP自体がApacheモジュールとして実行されていないことが原因かと思いましたので、引き続きそういう方向で調査していきます。

ありがとうございました。

2006/02/01 11:59:23

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません