プロが教えるわが家の防犯対策術!

以下の1.~4.をPHPで実現したいのですが、
どのようにすれば良いかご教授願えないでしょうか?

自分で調べろ!と言われても仕方が無いのですが、
全くPHPをさわったことがない&納期が明日・明後日のレベルですので、
大変恐縮ですが、どなたかお力を貸して頂ければ幸甚です。

以上、よろしくお願い致します。


1.外部ファイル(pass.txt)に格納されている4文字(abcd)の文字列と、
  WEB画面(input.php)のテキストボックスにユーザーが入力した4文字の
  文字列が一致しているかチェック
  ⇒一致していたら2へ。一致していなかったら4へ。

2.一致したらテキストファイル(log.txt)に日付(YYYYMMDD)と
  IPを含んだログを吐き出す

3.吐き出しが終わったら、WEB画面(index.html)を開く

4.一致していなかったら、「入力文字列が間違っています」とアラートを
  出し、「input.php」の画面から遷移させない。
  ログの吐き出しは不要。

A 回答 (2件)

#### pass.txt ####


aaaa
bbbb
abcd

#### input.php ####
<?PHP
if ($_POST['txt']) {
$flag = 0;
$pass = file("pass.txt");
foreach ($pass as $p) {
$p = chop($p);
if ($p == $_POST['txt']) {
$flag = 1;
break;
}
}
# HIT
if ($flag) {
# HITデータセット
$data = date("Y-m-d H:i:s");
$data .= "\t";
$data .= $_SERVER['REMOTE_ADDR'];
$data .= "\n";
$fp = fopen("log.txt","a+");
fwrite($fp,$data);
fclose($fp);
header("Location: ./index.html");
}
}
?>
<html>
<head>
</head>
<body>
<?PHP
if ($_POST['txt'] and !$flag) {
print "<p>入力文字列が間違っています</p>";
}
?>
<form action="input.php" method="POST">
<input type="text" name="txt">
<input type="submit" value="PASS">
</form>
</body>
</html>

この回答への補足

ご回答ありがとうございます。
試してみたところ、
header("Location: ./index.html");
のところで以下のエラーメッセージが出ました。

Warning: Cannot modify header information - headers already sent by (output started at /home/input.php:10) in /home/input.php on line 24

申し訳ありませんが、引き続きご教授願えないでしょうか?

補足日時:2007/09/30 00:12
    • good
    • 0

検索すればすぐにわかると思いますが、ヘッダー関数でLocationさせているので、なにか出力があった場合はエラーが起きます。


改変せずにチェックすればエラーは起きません。
何か修正した場合はそこを削除してください。

まずは何も手を加えずに動作チェックしていますか?
多分どこかでprintしただけだと思います。

100%聞いてもスキルはあがりません。
少しは調べる努力をしましょう。
    • good
    • 0
この回答へのお礼

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

もちろん、動作チェック&自身でも調べ、
色々調べてみたのですが、ダメでした。

これをメインで出来れば何の問題もないのですが、
開発とは全く関係のない別のメイン業務を毎日16~7時間ぐらい
こなした後に、調べるのは結構 骨だったので甘えてしまったところは
あるかもしれません。

私事ですみません。

とりあえず、これとは別に色々と要件が出てきた&
外注の許可がやっとでましたので、外注することにしました。

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

お礼日時:2007/10/03 22:54

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