[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: форма для отправки письма
NoCash
написал код все работало хорошо появилась необходимость прилепить капчу и пошли проблеммы
код игнорирует проверку капчи и все равно отправляет сообщение. подскажите где проглядел
<?
/* Осуществляем проверку вводимых данных и их защиту от враждебных
скриптов */

$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

Спустя 1 час, 40 минут, 46 секунд (16.04.2010 - 18:54) Jinus написал(а):
Тебе нужно ф-цию mail() перенести на место return true;
И убрать return false;
PS: И что это за ББ-коды перед и после оператора if()?

Спустя 16 минут, 38 секунд (16.04.2010 - 19:11) Unlikely написал(а):
Jinus
Человек хотел выделить средствами этого форума место где возникла проблема.
Использовав b внутри php.
Дума так smile.gif

Спустя 12 часов, 57 минут, 43 секунды (17.04.2010 - 08:09) NoCash написал(а):
Unlikely да вы правы хотел ошибку выделить. файлы капчи через сессию передается.
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 написал(а):
все всем спс)) разобрался)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.