swich文を使ったメールフォームの作成について。
<?php
// Error indicate.
$error_msg = '未入力...';
/*--- Form mode ---*/
$mode = isset($_POST["mode"]) ? htmlspecialchars($_POST["mode"]) : "input";
/*--- 入力項目 ---*/
$mail = (isset($_POST["mail"]) && $_POST["mail"]!=$error_msg) ? htmlspecialchars($_POST["mail"]) : "";
switch ($mode)
{
/*--- 入力画面 ---*/
case 'input':
echo'
<html>
<body>
<form enctype="multipart/form-data" action="inquiry.php" method="post">
<input type="hidden" name="mode" value="check" />
<div>* メールアドレス<input name="mail" type="text" value="'.$mail.'" size="" /></div>
<div><input type="submit" value="確認する" /></div>
</form>
</body>
</html>
';
break;
/*--- 入力チェック画面 ---*/
case 'check':
//-----------------------------------------
// 入力チェック。
//-----------------------------------------
//User Mail.
if ($mail == "") {//未入力処理。
$mail ='<font color="red">'.$error_msg.'</font>';
$error = 1;
} else if ( ereg("^[^@]+@[^.]+\..+", $mail) == false ){//書式処理。
$mail ='メールアドレスの書式が正しくありません。';
$error = 1;
} else {
$mail = $_POST["mail"];
}
if ($mail != "") {// 全角を半角に。
$mail = mb_convert_kana($_POST["mail"], "a", "utf-8");
}
echo'
<html>
<body>
<h1>ご入力内容をご確認してください。</h1>
<div>* メールアドレス<br />'.$mail.'</div>
';
/*--- 未入力画面 ---*/
if($error == 1) {
echo'
<div>
<form action="inquiry.php" method="post">
<input type="hidden" name="mode" value="input" />
<input type="hidden" name="mail" value="'.$mail.'" />
<input type="submit" value="戻る" />
</form>
</div>
</body>
</html>
';
}
/*--- 送信可能画面 ---*/
if($error == 0) {
echo'
<form action="inquiry.php" method="post">
<input type="hidden" name="mode" value="send" />
<input type="hidden" name="mail" value="'.$mail.'" />
<input type="submit" value="送信" />
</form>
<form action="inquiry.php" method="post">
<input type="hidden" name="mail" value="'.$mail.'" />
<input type="submit" value="戻る">
</form>
</body>
</html>
';
}
/*--- 送信画面 --*/
case 'send':
}
/*
swich文を中心にメールフォームを作っています。
入力画面で「$mail」には、入力内容、未入力の場合、エラー文が代入されます。
再び、入力画面に戻ると、当然ですが、入力欄には、エラー文が表示されてしまいます。
$mailを空にして入力画面に戻せば良いのですが、正しい入力や多少のミス入力した場合等、
ユーザが入力した値を、入力欄に戻したいと思っています。
どのような処理をすれば良いのでしょうか?
皆様、ご回答の方、どうぞよろしくお願いいたします。