Моя форма работает, все ошибки и все работает.Но если у вас есть ошибка, она обновляет страницу и удаляет любой текст, который был вставлен до нажатия кнопки «Отправить», и вам необходимо повторно ввести всю информацию.В любом случае, чтобы это исправить?
Я думаю, это как-то связано с неиспользованием $ _SERVER ["PHP_SELF"] в действии формы.Вместо этого у меня есть action = ""
. Я делаю это, потому что страница, которая должна быть обновлена с той же самой информацией, имеет переменную в своем URL-адресе (month_specials_info.php? Date = Dec10), которая была помещена туда изПоследняя страница.
Я попытался использовать
<form method="post" action="'.$_SERVER["PHP_SELF"].'?date='.$date.'">
, и он дал правильный URL.но текст все равно был удален при отправке формы (с ошибками) .. какие-либо идеи?
Код формы:
echo ' <div id="specialsForm"><h3>Interested in this coupon? Email us! </h3>
<form method="post" action="'.$_SERVER["PHP_SELF"].'?date='.$date.'">
Name: <input name="name" type="text" /><br />
Email: <input name="email" type="text" /><br />
Phone Number: <input name="phone" type="text" /><br /><br />
Comment: <br/>
<textarea name="comment" rows="5" cols="30"></textarea><br /><br />
<input type="submit" name="submit" value="Submit Email"/>
</form></div>
<div style="clear:both;"></div><br /><br />';
и vaildator:
if(isset($_POST['submit'])) {
$errors = array();
if (empty($name)) {
$errors[] = '<span class="error">ERROR: Missing Name </span><br/>';
}
if (empty($phone) || empty($email)) {
$errors[] = '<span class="error">ERROR: You must insert a phone number or email</span><br/>';
}
if (!is_numeric($phone)) {
$errors[] = '<span class="error">ERROR: You must insert a phone number or email</span><br/>';
}
if (!preg_match('/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/', strtoupper($email))) {
$errors[] = '<span class="error">ERROR: Please Insert a valid Email</span><br/>';
}
if ($errors) {
echo '<p style="font-weight:bold;text-align:center;">There were some errors:</p> ';
echo '<ul><li>', implode('</li><li>', $errors), '</li></ul><br/>';
} else {
mail( "email@hotmail.com", "Monthly Specials Email",
"Name: $name\n".
"Email: $email\n".
"Phone Number: $phone\n".
"Comment: $comment", "From: $email");
echo'<span id="valid">Message has been sent</span><br/>';
}
}