• ベストアンサー

PHPについて詳しい方、教えてください!

PHPについて詳しい方、教えてください。 PbScriptさんの(http://pbs.darkgray.net/)PbsChatv2.2をダウンロードして設置しました。 説明書通りに、新しいフォルダも作り、admin.phpをエディタで編集して管理用パスワードも決めましたが、サーバーにアップロードして、admin.phpで正しいパスワードを入力しても、何故か同じパスワード入力画面に戻ってしまいます。 サーバーのPHPバージョンは4です。 配布サイトではサポートをしていないとのことですので、どなたかご存知の方いらっしゃいましたら、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんにちは。 落として見てみた。 このスクリプト、register_globalsがON 前提で書かれてるね。 以前はデフォルトでONだったけど、今はセキュリティ上 OFFが推奨されている。 質問者さんの環境もOFFなんでしょう。 ONにすれば動くだろうけど、今言ったようにセキュリティ上 やばいんで、お勧めしない。 とりあえず、admin.phpの前のほうに $loginpass = $_POST["loginpass"]; $mode = $_POST["mode"]; と記述すれば、その場面は通る。 なんでそう書いたかっていうと、 コード中のformの値を渡すところが↓ > echo '<form action="admin.php" method="POST"> >管理用パスワード <input type="password" name="loginpass" size="10"> ><input type="hidden" name="mode" value="menu"> ><input type="submit" value="管理ログイン"> ></form>'; register_globalsがONの場合、nameの名前の変数に値が代入されて、 渡されるんだけど、OFFの場合は$_POSTという連送配列で渡されるので、 変数に代入しないといけない。 このように、他にも直さないといけないところ、あると思うよ。 詳しくはregister_globalsを調べてみて。

noname#23063
質問者

お礼

丁寧なご回答、ありがとうございました! そうですか・・・ 難しそうだったので、.htaccessに php_flag register_globals Off と書き加えてアップロードしてみたのですが、うまくいきませんでした・・・ アドバイスを参考に、今からPHP入門書と首っ引きでがんばります! 本当に助かりました。 ありがとうございました!

関連するQ&A

専門家に質問してみよう