<?php
# プログラム bbs.php STEP6
$submit = $HTTP_POST_VARS["SUBMIT"];
if ($submit=="送信") {
$name = $HTTP_POST_VARS["NAME"];
$mail = $HTTP_POST_VARS["MAIL"];
$body = $HTTP_POST_VARS["BODY"];
if ($name=="" or $body=="") {
echo '<font color="#FF000">必須項目入力エラー</font><br>';
echo 'お名前と本文は必ず入力してください<br>';
echo '<a href="javascript:history.back()">戻る</a>';
exit;
}
$body = str_replace("\r\n", "<br>", $body);
}
echo '
<html>
<head>
<title>PHP-BBS</title>
</head>
<body>
<h1>PHP-BBS</h1>
STEP6<br>
<form method="post" action="bbs.php" accept-charset="x-euc-jp">
お名前 <input type="text" size="16" maxlength="30" name="NAME">
メール <input type="text" size="30" maxlength="50" name="MAIL"><br>
本文<br>
<textarea rows="10" cols="70" wrap="soft" name="BODY"></textarea><br>
<input type="submit" name="SUBMIT" value="送信">
</form>
';
if ($mail=="") { echo "お名前:$name<br>"; }
else { echo "お名前:<a href=\"mailto:$mail\">$name</a><br>"; }
echo "本文:$body<br>";
echo '</body></html>';
?>
|
$HTTP_POST_VARS["SUBMIT"];の"SUBMIT"はHTMLフォームで作成した時のname="任意の名前"です。
もし、[送信]ボタンがクリックされ、このプログラムが呼出された場合、<input type="submit" name="SUBMIT" value="送信">のように、value="送信"と強制的に値をセットしているので、"送信"と言う文字列が必ず引渡されます。
つまり、新規書込みがあった場合、$submitは"送信"と言う値を持つことになります。
それ以外の値を持つ場合、[送信]ボタンがクリックされず呼出された場合と考えられます。
if ($submit=="送信") { は
[送信]ボタンが押されたかどうかを判定し、押された場合のみ{ }の処理を行います。
上記以外のケースでは{ }の処理はスキップされます。
では質問です!
[送信]ボタン名を[書きこむ]に変更した場合、新規書込みかどうかをどうやって判定しますか?
答えは最後に...
|