電子書籍の厳選無料作品が豊富!

フリーのものを使ってパスワード認証ページ(basic認証でない)を作ろうとしています。しかし、うまく動いてくれません…何がいけないのでしょうか?どうかご教授下さい。ちなみにここのサンプルです。
http://www.jetman.jp/passwd.php

<?php
$user_pass = "test";
$ok = "ok.htm";
$error = "error.htm";
$script = "login.php";
$doc_title = "テスト";

if(!isset($ver)) {
$ver = '1.05.1';
}
if(!isset($pass)) {
$pass = $user_pass; // パスを指定
if($passwd == $pass) {
header("Location: $ok"); // OKなら
}
elseif($passwd) {
header("Location: $error"); // NGなら
}
}
?>
<html>
<head>
<title><?php echo $doc_title; ?></title>
<meta http-equiv="Content-Type" content="text/html;Charset=Shift_JIS">
<script type="text/javascript">
<!--
function check() {
if(document.formxx.passwd.value.length == 0) {
alert("パスワードが入力されてません");
return false;
}
return true;
}
//-->
</script>
</head>
<body>

<h3><?php echo $doc_title; ?></h3>

<form action="<?php echo $script; ?>" method="post" name="formxx">
<input type="password" name="passwd" size="15">
<input type="submit" value=" login " onClick="check()">
<form>

<p style="font-size:10px"><a href="http://www.jetman.jp/">プチログイン version:<? echo $ver; ?></a></p>

</body>
</html>

A 回答 (4件)

<?php~?>の間のどこでもいいので


phpinfo();と書いてそのファイルをブラウザとかで見てみてください。
表みたいなのが表示されますので、その中から「register_globals」を検索などで探し、onかoffか確認します。
    • good
    • 0
この回答へのお礼

ありがとうございます!!

とうとう出来ました!涙でそうです!!!

こんな初歩的な質問にお付き合い戴き、感謝いたします。ありがとうございました。

お礼日時:2008/02/13 02:51

直接の回答ではありませんが・・



「php初心者だから」とおっしゃるのであれば、少なくとも一定以上古い世代のphpスクリプトを読む(使う)べきではありません。register_globalsが「標準でoff」になったのは4.2.0以降ですから、かなり以前のことです(私は4.3以降のバージョンしか知りません)。

慣れてくれば「古いバージョンでの書き方=書替えが必要だ」というのはわかりますが、最初は無理でしょうから。正直な話「今から覚える」のであれば、php5以降に特化しても問題ないと思います。

#htmlやJavaScriptのリファレンスだって古いものは使えなくなってしまうのですから。

あと・・どういう学習方法を採られているかわかりませんが(phpinfoなどで)実行環境をチェックするのは基本なので、この機会に覚えてください。マニュアルで関数を調べるとバージョンごとの対応も書かれています。
    • good
    • 0
この回答へのお礼

>「php初心者だから」とおっしゃるのであれば、少なくとも一定以上古い世代のphpスクリプトを読む(使う)べきではありません。register_globalsが「標準でoff」になったのは4.2.0以降ですから、かなり以前のことです(私は4.3以降のバージョンしか知りません)。

おっしゃる通りです。phpに手を出し始めたのは最近で、フレームの代わりにincludeでメニューを表示したり、ネット上の無料サンプルのほぼ丸写しでメールフォームを作ったりしていた程度です。なので、恥ずかしい話なのですが、phpに古い世代があること自体知りませんでした。このパスワード認証も、たまたま見つけたサンプルの丸写しなので、shimix様から教えて戴いて、初めてそれが古いphpだと分かったのです。本当にありがとうございます。

>あと・・どういう学習方法を採られているかわかりませんが
(phpinfoなどで)実行環境をチェックするのは基本なので、この機会に覚えてください。マニュアルで関数を調べるとバージョンごとの対応も書かれています。

はい、良い勉強になりました。本当にありがとうございます。

お礼日時:2008/02/13 02:59

phpinfo();


を実行して、register_globalsを確認するとよいと思います。
実行中のサーバがregister_globals=offだったら
$passwd → $_POST['passwd']
としたらよいのではないでしょうか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
しかし、本当に申し訳ないのですが、私はphp初心者なので、~を実行して…と仰られても、どこにどう書き込めばいいのか全く分かりません。

$passwd → $_POST['passwd']

のように、書いて戴けると助かります、どうか宜しくお願い致します。

お礼日時:2008/02/13 00:55

ひょっとして、こちら↓と同じですか?



  http://okwave.jp/qa3770065.html

postされた内容を変数に展開していないようですが、テストされている環境はregister_globalsがonじゃないですよね?

  http://www.php.net/manual/ja/ini.core.php#ini.re …
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

はずかしながら、仰って戴いたことが何のことだかわからなかったのですが、他の回答者の方々に教えて戴き、分かりました。かなり混乱していて、同じような質問をしてしまっていました。ありがとうございます。

お礼日時:2008/02/13 02:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!