Я сделал капчу этим [учебник] [1],Добавление простой математике CAPTCHA на
[1]: http://codechirps.com/how-to-add-a-completely-custom-captcha-to-any-web-form/, но мне кажется, это не полный. Я сделал код, но могу отправить электронную почту, даже если я поставил неправильный ответ. Я чувствую, что мне приходится писать дополнительный код в php-файле, но я не знаю, где. Любая помощь в значительной степени appriciated
<div class="modal-body">
<form class="contact" name="contact">
<label class="label" for="name">Имя</label><br>
<input type="text" name="name" class="input-xlarge"><br>
<label class="label" for="email">E-mail</label><br>
<input type="email" name="email" class="input-xlarge"><br>
<label class="label" for="message">Сообщение</label><br>
<textarea name="message" class="input-xlarge"></textarea>
</form>
</div>
<div class="modal-footer">
<p>2 + 3 =</p>
<input type="text" name="captcha" />
<input class="btn btn-warning" type="submit" value="Отправить" id="submit">
<a href="#" class="btn btn-danger" data-dismiss="modal">Закрыть</a>
<?php
$myemail = '';
if (isset($_POST['name'])) {
$name = strip_tags($_POST['name']);
$email = strip_tags($_POST['email']);
$message = strip_tags($_POST['message']);
$captcha = check_input($_POST['captcha']);
echo "<span class=\"alert alert-success\" >Сообщение отправлено</span><br><br>";
if (!preg_match("/5/", $captcha))
{
show_error("Check your math, Dude");
}
$to = $myemail;
$email_subject = "Contact form submission: $name";
$email_body = "You have received a new message. ".
" Here are the details:\n Name: $name \n ".
"Email: $email\n Message \n $message";
$headers = "From: $myemail\n";
$headers .= "Reply-To: $email";
mail($to,$email_subject,$email_body,$headers);
}?>
Ну, это потому, что вы не проверяете поле «email». И для captcha .. что делает функция 'check_input'? А также ваше поле для captcha находится вне формы. – putvande
Путванде, спасибо за ответ. Скажите, пожалуйста, если возможно, что мне нужно сделать для проверки поля электронной почты? я сделал это с помощью учебника и подумал, что check_input проверяет для поля captcha – Lucky
Самый простой способ в PHP проверить электронную почту - сделать что-то вроде 'filter_var ($ _ POST ['email'], FILTER_VALIDATE_EMAIL)' – jdepypere