人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: tomodrop
●カテゴリ:コンピュータ
✍キーワード:Apache PHP なう アップロード サーバ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kn1967
●0ポイント

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

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

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

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

◎質問者からの返答

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


2 ● battan
●50ポイント

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

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

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

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


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

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

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

◎質問者からの返答

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

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

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

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


3 ● えるふん
●50ポイント

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”) {

// 認証が通った

}

?>

◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ