To
Toru

Почему при отправке сообщений с сайта на почту, приходит 2 письма?

Каждый раз при отправке сообщения с моего сайта (сайт сделан на html) на почту приходит 2 письма - одно нормально, другое пустое. Что надо подправить в коде? форма на сайте:


Ваше имя:




Ваш e-mail (для ответа):




Ваше сообщение:






вот что содержит mail.php:http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
http://www.w3.org/1999/xhtml">


Feedback


if (isset($_POST['name'])) {$name = $_POST['name'];}
if (isset($_POST['email'])) {$email = $_POST['email'];}
if (isset($_POST['mess'])) {$mess = $_POST['mess'];}$to = "МОЯ @ ПОЧТА"; /*Укажите ваш адрес электоронной почты*/
$charset = "utf-8";
$headers .= "Content-Type: text/plain";
mail($to, $subject, $body, $headers);
$subject = "Сообщение с вашего сайта";
$message = "Имя пославшего: $name \nЭлектронный адрес: $email \nСообщение: $mess";
$send = mail ($to, $subject, $message, $headers);
if ($send == 'true')
{
echo "Thanks for sending your message!

";
echo "Press to return on the main page";
}
else
{
echo "

Mistake. The message isn't sent!";
}
?>

Виталий Казанков
Виталий Казанков

if (isset($_POST['name'])) {$name = $_POST['name'];} - ненавижу когда так пишут. . в вашем скрипте нет никаких проверок и скрипт уязвимый. . В файле mail.php напишите вот такой код


if(isset($_POST['send'])) {//Если кнопка нажата

$name = trim(htmlspecialchars($_POST['name']));//Получаем имя
$email = trim(htmlspecialchars($_POST['email']));//Получаем адрес эл. почты

//Проводим проверку
if(empty($name)) echo 'Введите имя';
else if(empty($email)) echo 'Введите адрес эл. почты';
else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) echo 'Некорректный адрес эл. почты';

else {//Если всё хорошо

$to = '';//Тут ваш адрес эл. почты
$subject = '';//Тема сообщения
$message = $name.' - '.$email;//Сообщение
$headers = 'Content-Type: text/plain; charset=utf-8';//Кодировка и тип
$mail = mail($to, $subject, $message, $headers);//Отправляем

if($mail) echo 'Сообщение отправлено';
else echo 'Ошибка при отправке';

}

}

?>