Используя сценарий ниже (взятый из шаблона), я добавил простой вопрос проверки для предотвращения спама (что такое 2 + 2?). На данный момент, когда кнопка отправки заполнена, появляется страница error.php, но форма представляется пустым.Поле проверки контактной формы PHP
Как обеспечить, чтобы форма была отправлена только после проверки секретного вопроса?
<?php
$EmailTo = "[email protected]";
$Subject = "website";
$name = Trim(stripslashes($_POST['name']));
$email = Trim(stripslashes($_POST['email']));
$number = Trim(stripslashes($_POST['number']));
$message = Trim(stripslashes($_POST['message']));
// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.php\">";
exit;
}
// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $name;
$Body .= "\n";
$Body .= "Tel: ";
$Body .= $number;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $message;
$Body .= "\n";
// send email
$submit = mail($EmailTo, $Subject, $Body, "From: <$email>");
// redirect to success page
if(isset($_POST['submit'])){
if(isset($_POST['answer']) && $_POST['answer'] == 4){
print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.php\">";
}
}
?>
Форма кода следующим образом:
<div id="form-holder" class="cont">
<h2>Contact form</h2>
<form method="post" action="send.php" class="uniform get-in-touch">
<div class="i-h">
<input type="text" name="name" id="name"/>
<div class="i-l"><span>Name</span></div></div>
<div class="i-h">
<input type="email" name="email" id="email"/>
<div class="i-l"><span>E-mail</span></div></div>
<div class="i-h">
<input type="text" name="number" id="number"/>
<div class="i-l"><span>Number</span></div></div>
<div class="t-h">
<textarea name="message" rows="32" cols="8" id="message" placeholder="Please leave us a message."></textarea>
</div>
<br><p>What is 2+2?</p><input type="text" name="answer" id="answer" />
<input type="submit" name="submit" value="Submit" class="submit-button">
<a href="#" class="do-clear">Clear</a>
</form>
</div>
Привет, спасибо за это - у меня было такое ощущение, что «ответ» часть должна контролироваться процесс «Submit». 0 (0) $ submit = mail ($ EmailTo, $ Subject, $ Body, "From", "Отправить" : <$email> "); \t print ""; } else { // Установка ошибки print ""; } ?> – Stanley