Как сделать что бы не отправлялась пустая переменная php?

Есть вот такой код отправки данных в телегу, но не все поля обязательный для заполнения, как сделать что бы пустые переменные не отправлялись?
$token = "****************************************";
$chat_id = "***********";
/*Общая информация*/
$name = $_POST['user_name'];
$telegram = $_POST['user_telegram'];
$instagram = $_POST['user_instagram'];
$email = $_POST['user_email'];
/*Логотип*/
$logo_1 = $_POST['logo_1'];
$logo_2 = $_POST['logo_2'];
$logo_3 = $_POST['logo_3'];
$logo_4 = $_POST['logo_4'];
$logo_5 = $_POST['logo_5'];
$arr = array(
/*Общая информация*/
  'Имя пользователя: ' => $name, /*обязательно заполнить*/
  'Telegram: ' => $telegram,
  'Instagram: ' => $instagram,  
  'Email: ' => $email, /*обязательно заполнить*/
/*Логотип*/
  'Для чего нужен логотип: ' => $logo_1,
  'Пожелания к логотипу: ' => $logo_2,
  'Целевая аудитория: ' => $logo_3,
  'Наличие материалов: ' => $logo_4,
  'Примеры логотипов: ' => $logo_5
);

foreach($arr as $key => $value) {
  $txt .= "<b>".$key."</b> ".$value."%0A";
};

$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");

if ($sendToTelegram) {
  header('Location: thank-you.php');
} else {
  echo "Error";
}
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
dyuriev
@dyuriev
A posteriori
Как то так:
foreach($arr as $key => $value) {
  $txt .= "<b>".$key."</b> ".$value."%0A";
};

в этот цикл проверку добавьте, чтобы strlen($value) было больше нуля

PS: если не знаете как, то вам не на этот ресурс
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Awilum
@Awilum
Частный разработчик, ментор и преподаватель курсов
Как вариант можно сделать вот так:

$token = "****************************************";
$chat_id = "***********";

$data = $_POST;
$arr = array();
$txt = '';

isset($data['user_name']) and $arr['Имя пользователя: '] = $data['user_name'];
isset($data['user_telegram']) and $arr['Telegram: '] = $data['user_telegram'];
isset($data['user_instagram']) and $arr['Instagram: '] = $data['user_instagram'];
isset($data['user_email']) and $arr['Email: '] = $data['user_email'];
isset($data['logo_1']) and $arr['Для чего нужен логотип: '] = $data['logo_1'];
isset($data['logo_2']) and $arr['Пожелания к логотипу: '] = $data['logo_2'];
isset($data['logo_3']) and $arr['Целевая аудитория: '] = $data['logo_3'];
isset($data['logo_4']) and $arr['Наличие материалов: '] = $data['logo_4'];
isset($data['logo_5']) and $arr['Примеры логотипов: '] = $data['logo_5'];

foreach($arr as $key => $value) {
    $txt .= "<b>".$key."</b> ".$value."%0A";
};

$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");

if ($sendToTelegram) {
    header('Location: thank-you.php');
} else {
    echo "Error";
}
Ответ написан
slashinin
@slashinin
Задачи для PHP https://justcoding.ru
Перед foreach написать:
$arr = array_filter($arr);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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