<?php
# プログラム bbs.php STEP5
$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>
STEP5<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>';
?>
|
if ($name=="" or $body=="") { は
もし、$nameが空、または、$bodyが空だったら、{ } の中を実行しなさい、と言う意味になります。
$nameはお名前、$bodyは本文ですから、いずれか一つでも入力されていなければ...となります。
""と書かれた場合、"何も無い"と言う意味になり、NULL(ヌル)と呼ばれています。
<a href="javascript:history.back()">戻る</a>はJavaScriptのヒストリー命令を指定しています。
リンク先としてjavascript:history.back()を指定すると、一つ前の画面に戻ります。(ブラウザの[戻る]ボタンと同じ意味になります)
exit;は強制的にこのプログラムを終了しなさい、と言う意味になります。
PHPはexit命令を解釈した後、以降の処理を行いません。
では質問です!
お名前、メール、本文の全てが入力されていない場合エラー処理になるよう判定するにはif文をどう書換えますか?
答えは最後に...
if ($mail=="") { は
$mailが空だったら、{ }を処理することを意味します。
つまりメール入力がされていない場合、お名前をMailtoとしてメールへリンクせず表示します。
else { は
直前の判定(if文)の反対、つまり、$mailが空じゃ無かったら、{ }を処理することを意味します。
メールに何らかの入力あった場合、お名前をMailtoとしてメールへリンク表示します。
|