Задать вопрос
@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>';//Телефон
}
  • Вопрос задан
  • 345 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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'ом (это не снимает необходимость проверок на бекенде!!!)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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