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

Почему приходят порой пустые заявки?

Вопрос следующий, вот код обработчика, а так же валидация формы через required
Иногда прилетают пустые заявки, в чем может быть причина ?
И как это можно исправить ?

Собственно сам код :
<?
    //Принимаем постовые данные
    $name=$_POST['name'];
    $phone=$_POST['phone'];
    $utm_source = $_POST['utm_source'];
    $utm_medium = $_POST['utm_medium'];
    $utm_term = $_POST['utm_term'];
    $utm_content = $_POST['utm_content'];
    $utm_campaign = $_POST['utm_campaign'];



     
    //Тут указываем на какой ящик посылать письмо
    $to      = 'emailadress@mail.ru, emailadress2@mail.ru, emailadress3@mail.ru, emailadress4@mail.ru, emailadress5@mail.ru, emailadress6@mail.ru';
    
    //Далее идет тема и само сообщение
    $subject = "Заявки с сайта ";
    $message = "
    Письмо отправлено из моей формы gruppa-m.ru.<br />
    Пользователь указал:<br />Имя: ".htmlspecialchars($name)."<br />
    Телефон: ".htmlspecialchars($phone)."<br />
    utm_source = ".htmlspecialchars($utm_source)." <br />
    utm_medium = ".htmlspecialchars($utm_medium)." <br />
    utm_term = ".htmlspecialchars($utm_term)." <br />
    utm_campaign = ".htmlspecialchars($utm_campaign)." <br />
    utm_content = ".htmlspecialchars($utm_content);
    $headers = "From: translate-lang.bid <site-email@mysite.ru>\r\nContent-type: text/html; charset=utf8 \r\n";
    mail ($to, $subject, $message, $headers);
?> 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <link rel="stylesheet" href="css/tnx.css">
</head>
<body>
    <h1>Заявка принята</h1>
    <p>Менеджер уже обрабатывает Вашу заявку. <br>Спасибо, что выбрали нас. </p>


    <a class="button" href="index.php">Вернуться на сайт</a>
</body>
</html>
  • Вопрос задан
  • 920 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
ivan_zhuck
@ivan_zhuck
Валидация должна быть не только на фронте, но и на беке. Поскольку POST запрос можно отправить не только через форму, но и напрямую, обратившить по адресу обработчика формы. Отправлять такой запрос могут спам-роботы, ушлые пользователи, которые ищут уязвимости и т.д. В самом примитивном случае можно сделать так:

$name = !empty($_POST['name'])?$_POST['name']:false;
$phone = !empty($_POST['phone'])?$_POST['phone']:false;

if($name and $phone){
      //тут отправляем форму
}else{
     //тут сообщаем об ошибке
}


В не примитивном случае, должна быть более строгая валидация и в клиентской части приложения и в серверной. Например: в имени могу быть только буквы,пробелы и дефисы, а строка номера телефона после очистки от прочих символов должна содержать 10 числел. Сама форма должна быть защищена от CSRF, XSS и прочих типовых уязвимостей. Если форма публичная (например форма контактов, как в вашем случае) должен присутствовать механизм от защиты отправки формы ботами, например reCAPTCHA.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽