- 締切済み
PHP+mySQL認証画面
サーバーの引っ越しで新しいサーバーにてプログラムの動作確認を行っています。 管理者パネルに入るのに、PHPで作成した認証プログラムでログインしようとすると、入力しても何度も聞いてきて入れません。 旧 MySQL5.0.22 phpMyAdmin2.8.2.4 新 MySQL5.1.69 phpMyAdmin3.5.8.1 IDとパスワードはデータベースで設定。 管理者パネルで変更できるようになっている。 $sv = "**"; $dbname = "**"; $user = "**"; $pass = "**"; ログイン認証 //データベースに接続する $conn = mysql_connect($sv,$user,$pass) or die("接続エラー"); mysql_select_db($dbname) or die("データーベース接続エラー"); $sql = "SELECT id, pass FROM pass_t WHERE pno=1"; $res = mysql_query($sql, $conn) or die("データ抽出エラー"); while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { $db_user_id=$row['id']; $db_password=$row['pass']; } if(!isset($_SERVER["PHP_AUTH_USER"]) || $_SERVER["PHP_AUTH_USER"] != "$db_user_id" || $_SERVER["PHP_AUTH_PW"] != "$db_password") { header("WWW-Authenticate: Basic realm=\"login\""); header('HTTP/1.0 401 Unauthorized'); echo "ユーザー名またはパスワードが間違っています。<br>"; echo "もう一度はじめからやり直してください。"; exit; } 細々変えて試してみましたが駄目でした。 まだまだわからないことだらけの初心者なので、どうにもならずで 解決策がありましたらぜひ教えて頂けますと幸いです。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- agunuz
- ベストアンサー率65% (288/438)
>プログラムが理由なのかはわからないのですが、念のために載せた次第です。 .htaccessはどう書いているのでしょうか?また新旧のサーバで動作モード(モジュール動作/CGI動作)が違うとか、セーフモードが違うとかはありませんか? http://www.php.net/manual/ja/features.http-auth.php ------- 引用ここから PHP 4.3.0 以降、誰かが従来の外部機構による認証を行ってきたページの パスワードを暴くようなスクリプトを書くことを防ぐために、 特定のページに関して外部認証が可能でかつ セーフモード が有効の場合、 PHP_AUTH 変数はセットされません。 この場合、外部認証されたユーザーかどうかを確認するために REMOTE_USER 変数、すなわち、 $_SERVER['REMOTE_USER'] を使用することができます。 ------- 引用ここまで
- kamikami30
- ベストアンサー率24% (812/3335)
管理者パネルに入るのに、PHPで作成した認証プログラムでログインしようとすると、入力しても何度も聞いてきて入れません というのが、問題点のようですが、 管理者パネルって具体的になに? PHPで作成した認証プログラムというのが下記のソース? 何を入力しても? 何を何度も聞いてくる? どこに入れない? という具合に情報に具体性がないんで、状況が把握しづらいです。 プログラムとは直接関係ありませんが、 何らかの目的に必要な事柄を、細分化する能力がないと、プログラム書けません。 小学生の国語で習った、 いつ どこで 誰が 何を どのように というのが、不足しないようにすべてのことを考えてください。 折角質問したいい機会なので、自分自身で質問を読み返して、その説明で状況が確定するのか考えるといいと思います。 結果的に不足内容を追記することで、 求める回答をしてくれる方も増えるでしょう。
補足
御助言有難うございます。「管理者パネル」は無視してください。 VPSレンタルサーバーにて、アクセス制限をかけたページの動作テスト中です。 サーバーは、新旧ともVPSです。 ページに入るのに、ログイン、パスワードを入れて入るのですが、正しいIDとパスワードを入れても、何度も聞いてきて入ることができません。 制限をかけたページの一番上に、上のプログラムでアクセス制限をかけています。 旧サーバーでは、これでできていました。 プログラムが理由なのかはわからないのですが、念のために載せた次第です。
お礼
ありがとうございました。 .htaccessでおかしな動きで戻らず、結局初期化して再度設定した際に見直してみたところ、Apacheモジュールでない設定になってた模様。 こちらを設定し直したら入れました。 ご回答有難うございました<(_ _)>