Задать вопрос
@akselian

Приходят пустые сообщения на почту из формы, как сделать?

Вот у меня такая форма, пытаюсь разобраться с обработчиком, как работать.

<form>
            <input type="date" id="date" name="date"/>
            <input type="date" id="date_2" name="date_2"/>
            <select name="select" size="1" multiple>
             <option selected value="s1">1 гость</option>
             <option value="s2">2 гостей</option>
             <option value="s3">3 гостей</option>
             <option value="s4">4 гостей</option>
             <option value="s4">5 гостей</option>
             <option value="s4">6 гостей</option>
             <option value="s4">7+ гостей</option>
            </select>
            <select name="select_2" size="1" multiple>
                    <option selected value="s1">10-ти местный общий номер</option>
                    <option value="s2">6-и местный общий номер</option>
                    <option value="s3">Семейный номер</option>
                    <option value="s4">2-х местный номер</option>
            </select>
            <input type="tel" name="tel" value="Ваш номер телефона"></p>
            <p>Свяжитесь со мной по WhatsApp <input type="checkbox" name="a"></p>
            <input type="submit" value="Забронировать"></p> 
        </form>

вот обработчик
<?php

/* Задаем переменные */
$date= htmlspecialchars($_POST["date"]);
$date_2= htmlspecialchars($_POST["date_2"]);
$guest= htmlspecialchars($_POST["guest"]);
$number= htmlspecialchars($_POST["number"]);
$tel= htmlspecialchars($_POST["tel"]);
$watsapp= htmlspecialchars($_POST["watsapp"]);


/* Ваш адрес и тема сообщения */
$to = "akselian1@gmail.com";
$subject = "Заявка от Брони";

/* Формат письма */
$mes = "Сообщение с сайта http://bbhostel.ru/.\n
Заезд: $date
Выезд: $date_2
Число гостей: $guest
Номер: $number
Телефон: $tel
Нужно позвонить в watsapp: $watsapp";

{
    
/* Отправляем сообщение, используя mail() функцию */
$from  = "From: $mes <$mes> \r\n";
if (mail($to, $subject, $mes)) {
    header('Refresh: 5; URL=http://bbhostel.ru/index.html');
    echo '
    
    Спасибо! Ваше письмо отправлено.';}
else {
    header('Refresh: 5; URL=http://bbhostel.ru/index.html');
    echo '
    
    Письмо не отправлено, через 5 секунд вы вернетесь на страницу http://bbhostel.ru';}
}
?>

Приходит вот такое письмо, что не правильно я сделал, помогите пожалуйста)
5da9f3bac489f707087946.png
  • Вопрос задан
  • 115 просмотров
Подписаться 2 Средний Комментировать
Решения вопроса 1
glaphire
@glaphire Куратор тега PHP
PHP developer
1) укажите в form явно method и action
2) проверяйте данные из $_POST на пустоту, чтобы письмо с пустыми полями не отправлялось
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
AccessDenied80
@AccessDenied80
Web разработка
А форма разьве POST отправляет ? Похоже на GET.
form method="post" - вот так!
Ответ написан
meowto16
@meowto16
Делаю штуки
Привет, а почему у тебя переменные заданы так?
/* Формат письма */
$mes = "Сообщение с сайта http://bbhostel.ru/.\n
Заезд: $date
Выезд: $date_2
Число гостей: $guest
Номер: $number
Телефон: $tel
Нужно позвонить в watsapp: $watsapp";


А не так?
/* Формат письма */
$mes = "Сообщение с сайта http://bbhostel.ru/.\n
Заезд: {$date}
Выезд: {$date_2}
Число гостей: {$guest}
Номер: {$number}
Телефон: {$tel}
Нужно позвонить в watsapp: {$watsapp}";


Может в этом проблема?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы