メールフォームにある必須入力について
こんばんは、今メールフォームを作っています。入力画面→確認画面→完了ページという流れで作ったのですがよく必須項目に何も入れなかったり、間違った文字をいれたりするとエラーページが表示されるようにしたいと思っているのですが、なかなか上手くできません。下記のスクリプトからだとどうやってやったら良いのでしょうか?よろしくおねがいします。
<?php
if (! isset($_POST[btn1]) and! isset($_POST[btn2]) and! isset($_POST[cancel])) {
//入力画面
$body = "必要な項目を入力して[OK]ボタンをクリックしてください。
<FORM action='$_SERVER[PHP_SELF]' method='POST'>
名前:<INPUT size='40' type='text' name='name'><BR><BR>
フリガナ:<INPUT size='40' type='text' name='kana'><BR><BR>
電話番号:<INPUT size='40' type='text' name='tel'><BR><BR>
E-Mailアドレス:<INPUT size='40' type='text' name='email'><BR><BR>
お問い合わせ内容:<BR><TEXTAREA rows='6' cols='40' name='inquiry'></TEXTAREA><BR><BR>
<INPUT type='submit' name='btn1' value=' OK '>
</FORM>";
}
elseif (isset($_POST[btn1])) {
//入力画面で[OK]がクリックされたとき
$name = htmlspecialchars(stripcslashes($_POST[name]));
$kana = htmlspecialchars(stripcslashes($_POST[kana]));
$tel = htmlspecialchars(stripcslashes($_POST[tel]));
$email = htmlspecialchars(stripcslashes($_POST[email]));
$inquiry = htmlspecialchars(stripcslashes($_POST[inquiry]));
$body = "ご入力した内容でメッセージを送信します。<BR>
よろしければ[送信]ボタンをクリックしてください。
<FORM action='$_SERVER[PHP_SELF]' method='POST'>
名前:$name<BR><BR>
フリガナ:$kana<BR><BR>
電話番号:$tel<BR><BR>
E-Mailアドレス:$email<BR><BR>
お問い合わせ内容:<BR>" .
nl2br($inquiry) .
"<BR><BR>
<INPUT type='submit' name='btn2' value=' 送信 '>
<INPUT type='submit' name='cancel' value='キャンセル'>
<INPUT type='hidden' name='name' value=\"$name\">
<INPUT type='hidden' name='kana' value=\"$kana\">
<INPUT type='hidden' name='tel' value=\"$tel\">
<INPUT type='hidden' name='email' value=\"$email\">
<INPUT type='hidden' name='inquiry' value=\"$inquiry\">
</FORM>";
}
elseif (isset($_POST[btn2])) {
//確認画面で[送信]がクリックされたとき
//メールの送信処理を行う
$name = stripcslashes($_POST[name]);
$kana = stripcslashes($_POST[kana]);
$tel = stripcslashes($_POST[tel]);
$email = stripcslashes($_POST[email]);
$inquiry = stripcslashes($_POST[inquiry]);
$mailto = "kuma202000@yahoo.co.jp";
$mailsbj = "メールフォームからの送信";
$mailbody = "$name さんからのメールが届きました。\n" .
"---------------------------------------------\n" .
"名前:$name \n" .
"フリガナ:$kana \n" .
"電話番号:$tel \n" .
"E-Mailアドレス:$email \n" .
"メッセージ:$inquiry \n" .
"---------------------------------------------\n";
mb_language("ja");
if (mb_send_mail($mailto, $mailsbj, $mailbody, $mailheader)) {
$body = "メールを送信しました。ありがとうございました。<BR><BR>";
}
else {
$body = "メールの送信に失敗しました。<BR><BR>";
}
$body .= "<A href='$_SERVER[PHP_SELF]'>戻る</A>";
}
elseif (isset($_POST[cancel])) {
//確認画面で[キャンセル]がクリックされたとき
header("location: $_SERVER[PHP_SELF]");
exit();
}
?>
<HTML>
<HEAD>
</HEAD>
<BODY>
<?=$body?>
</BODY>
</HTML>
お礼
ご回答ありがとうございます。 何機種か試したんですが、全て発信になるんでこういう機能自体、ほとんどの機種で使えない状態なのかもしれません。 ありごとうございました。