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

PHPmailer, не отправлять письмо, если один из $_POST[''] пустой?

Иногда приходят пустые письма, как прописать что если
$_POST['phone'] пустой, не отправлять письмо.

структура:
$title = 'Откуда: ' .  $_POST['title'] . '<br>'; //Заголовок

if ($_POST['your_device']) {
    $device = 'Устройство: ' .  $_POST['your_device'] . '<br>'; //Калькулятор, Ваше устройство
}

if ($_POST['problems_txt']) {
    $problems_txt = 'Проблема: ' . $_POST['problems_txt'] . '<br>'; //Отзыв
}

if ($_POST['name']) {
    $name = 'Имя: ' . $_POST['name'] . '<br>'; //Имя
}

if ($_POST['phone']) {
    $phone = 'Телефон: ' .  $_POST['phone'] . '<br>';//Телефон
}
  • Вопрос задан
  • 333 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
RomaZveR
@RomaZveR
CEO AlertMoney, PHP/Golang Developer
Как правильно выше написали, лучше всегда делать проверку всех используемых переменных из $_POST.
if (empty($_POST['var'])) {
   return 'error, field var not filled';
}


empty(mixed $var)
эквивалент конструкции
if(!isset($var) || $var == false)

Даже если поле не обязательно к заполнению - делайте проверки на существование и объявляйте пустую строку если поле пустое или вообще не пришло с фронтенда:
if (empty($_POST['var1'])) {
  $_POST['var1'] = '';
}
...
$text.= $_POST['var1'];
...


Ну и делайте дополнительно валидацию формы на фронтенде js'ом (это не снимает необходимость проверок на бекенде!!!)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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