код игнорирует проверку капчи и все равно отправляет сообщение. подскажите где проглядел
<?
/* Осуществляем проверку вводимых данных и их защиту от враждебных
скриптов */
$your_name = htmlspecialchars($_POST["your_name"]);
$email = htmlspecialchars($_POST["email"]);
$tema = htmlspecialchars($_POST["tema"]);
$message = htmlspecialchars($_POST["messages"]);
$code_mes = htmlspecialchars($_POST["code_mes"]);
/* Устанавливаем e-mail адресата */
$myemail = "karelin_ia@mail.ru";
/* Проверяем заполнены ли обязательные поля ввода, используя check_input
функцию */
$your_name = check_input($_POST["your_name"], "Введите ваше имя!");
$tema = check_input($_POST["tema"], "Укажите тему сообщения!");
$email = check_input($_POST["email"], "Введите ваш e-mail!");
$message = check_input($_POST["message"], "Вы забыли написать сообщение!");
$code_mes = check_input($_POST["code_mes"], "Решите пример!");
/* Проверяем правильно ли записан e-mail */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("<br /> Е-mail адрес не существует");
}
/* Проверяем правильно ли решена капча */
[b]if(isset($_POST['code_mes']) && isset($_SESSION['code']))
{
if(strtolower($_POST['code_mes']) == $_SESSION['code'])
return true;
else
show_error ("<br /> Решите пример");
return false;
}[/b]
/* Создаем новую переменную, присвоив ей значение */
$message_to_myemail = "Здравствуйте!
Вашей контактной формой было отправлено сообщение!
Имя отправителя: $your_name
E-mail: $email
Текст сообщения: $message
";
/* Отправляем сообщение, используя mail() функцию */
$from = "От: $yourname \r\n Адрес отправителя: $email \r\n";
mail($myemail, $tema, $message_to_myemail, $from);
?>
<?php
/* Если при заполнении формы были допущены ошибки сработает
следующий код: */
function check_input($data, $problem = "")
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<html>
<body>
<p>Пожалуйста исправьте следующую ошибку:</p>
<?php echo $myError; ?>
</body>
</html>
<?php
exit();
}
?>
Спустя 3 часа, 29 минут, 35 секунд (16.04.2010 - 17:13) Unlikely написал(а):
Эм. Скрипт капчи не include? или я что то не так понял
Не понять от куда берётся code
Не понять от куда берётся code
Спустя 1 час, 40 минут, 46 секунд (16.04.2010 - 18:54) Jinus написал(а):
Тебе нужно ф-цию mail() перенести на место return true;
И убрать return false;
PS: И что это за ББ-коды перед и после оператора if()?
И убрать return false;
PS: И что это за ББ-коды перед и после оператора if()?
Спустя 16 минут, 38 секунд (16.04.2010 - 19:11) Unlikely написал(а):
Jinus
Человек хотел выделить средствами этого форума место где возникла проблема.
Использовав b внутри php.
Дума так
Человек хотел выделить средствами этого форума место где возникла проблема.
Использовав b внутри php.
Дума так
Спустя 12 часов, 57 минут, 43 секунды (17.04.2010 - 08:09) NoCash написал(а):
Unlikely да вы правы хотел ошибку выделить. файлы капчи через сессию передается.
Jinus
если так сделать то никакх изменений нету все равно если код не верен письмо отправляется
Jinus
если так сделать то никакх изменений нету все равно если код не верен письмо отправляется
Спустя 1 час, 47 секунд (17.04.2010 - 09:09) Unlikely написал(а):
http://phpforum.ru/index.php?showtopic=27832
Возможно, поможет.
Возможно, поможет.
Спустя 30 минут, 29 секунд (17.04.2010 - 09:40) NoCash написал(а):
хы забавно) стартанул сессию на стр где иет проверка данных и отправляется письмо капча заработала т.е если пример решен не верно то и сообщение вылазит что решен пример не верно, но сообщение перестало отправляться
.
.
Спустя 1 минута, 53 секунды (17.04.2010 - 09:42) NoCash написал(а):
все всем спс)) разобрался)