Asset
Новичок
Люди добрые и злые) помогите разобраться, как корректно задать проверку для капчи, два дня кручу, ничего не получается
captcha.php:
contact.php:
![Frown :( :(](/talk/styles/default/xenforo/smilies/frown.png)
captcha.php:
PHP:
<?php
session_start();
require "captcha.class.php"; //Подключаем класс капчи
//Инициализируем капчу
$captcha = new Captcha();
$_SESSION['keystring'] = $captcha->getKeyString();
echo $captcha->draw();
?>
PHP:
<?php session_start();
error_reporting(E_ALL ^ E_NOTICE);
//Форма
if(isset($_POST['submitted'])) {
// Имя
if(trim($_POST['contactName']) === '') {
$nameError = 'Пожалуйста укажите имя!';
$hasError = true;
} else {
$name = trim($_POST['contactName']);
}
// Мыло
if(trim($_POST['email']) === '') {
$emailError = 'Пожалуйста укажите свой e-mail адрес!';
$hasError = true;
} else if (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", trim($_POST['email']))) {
$emailError = 'Пожалуйста укажите существующий e-mail адрес!';
$hasError = true;
} else {
$email = trim($_POST['email']);
}
// Сообщение
if(trim($_POST['comments']) === '') {
$commentError = 'Вы забыли ввести сообщение!';
$hasError = true;
} else {
if(function_exists('stripslashes')) {
$comments = stripslashes(trim($_POST['comments']));
} else {
$comments = trim($_POST['comments']);
}
}
// Капча
if(trim($_POST['pr']) === '') {
$prError = 'Введите число с картинки!';
$hasError = true;
} else if (isset($_POST['pr']) && $_POST['pr'] == $_SESSION['keystring']) {
$prError = 'Введено неверное число!';
$hasError = true;
} else {
$pr = trim($_POST['pr']);
}
// Форм
if(!isset($hasError)) {
$emailTo = '[email protected]';
$subject = 'Сообщение от '.$name;
$sendCopy = trim($_POST['sendCopy']);
$body = "Имя: $name \n\nE-mail: $email \n\nСообщение: $comments";
$headers = 'From: ' .' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
mail($emailTo, $subject, $body, $headers);
// Отпр
$emailSent = true;
}
}
?>
Далее сама форма:
<?php if(isset($emailSent) && $emailSent == true) { ?>
<p class="info">Ваше сообщение было отправлено!</p>
<?php } else { ?>
<div id="contact-form">
<form id="contact-us" action="contact.php" method="post">
<div class="formblock">
<label class="screen-reader-text">Имя <?php if($nameError != '') { ?>
<span class="error"><?php echo $nameError;?></span>
<?php } ?></label>
<input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="txt requiredField" placeholder="Петров Петр Петрович" />
</div>
<div class="formblock">
<label class="screen-reader-text">E-mail <?php if($emailError != '') { ?>
<span class="error"><?php echo $emailError;?></span>
<?php } ?></label>
<input type="text" name="email" id="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" class="txt requiredField email" placeholder="мойэмейл@mail.ua" />
</div>
<div class="formblock">
<label class="screen-reader-text">Сообщение <?php if($commentError != '') { ?>
<span class="error"><?php echo $commentError;?></span>
<?php } ?></label>
<textarea name="comments" id="commentsText" class="txtarea requiredField" placeholder="Текст сообщения"><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>
</div>
<div class="formblock">
<label class="screen-reader-text"><br><?php require 'captcha.php';?><?php if($prError != '') { ?>
<span class="error"><?php echo $prError;?></span>
<?php } ?></label><br/>
<input name="pr" style=" margin-bottom:11px" type="text" size="6" maxlength="5" value="<?php if(isset($_POST['pr'])) echo $_POST['pr'];?>"
class="txt requiredField email" placeholder="Введите число с картинки" />
</div>
<br>
<label id="load" style="display:none"></label>
<input id="submit-button" class="button gray stripe" type="submit" name="submit" value="Отправить" />
<input type="hidden" name="submitted" id="submitted" value="true" /><br/><br/><br/>
</form>
</div>
<?php } ?>