@proclub

Как сделать проверку формы у телеграм запроса?

Вопрос. Есть вот такой php обработчик, который классно обрабатывает отправку на email. А Вот с отправкой в телеграм он не справляется. То есть нажал на форме кнопку и сразу улетело в телегу сообщение, при этом валидатор вылазит спокойно и после заполнения улетает и на почту тоже.

<?php
    $msg_box = ""; // в этой переменной будем хранить сообщения формы
    $errors = array(); // контейнер для ошибок
    // проверяем корректность полей
    if($_POST['user_name'] == "")    $errors[] = "Поле 'nick' не заполнено!";
    
 
    // если форма без ошибок
    if(empty($errors)){     
        // собираем данные из формы
        $message  = "NIckName: " . $_POST['user_name'] . "<br/>";  
        send_mail($message); // отправим письмо
        // выведем сообщение об успехе
        $msg_box = "<span style='color: green;'>Сообщение успешно отправлено!</span>";
    }else{
        // если были ошибки, то выводим их
        $msg_box = "";
        foreach($errors as $one_error){
            $msg_box .= "<span style='color: red;'>$one_error</span><br/>";
        }
    }
 
    // делаем ответ на клиентскую часть в формате JSON
    echo json_encode(array(
        'result' => $msg_box
    ));
     
     
    // функция отправки письма
    function send_mail($message){
        // почта, на которую придет письмо
        $mail_to = ""; // в кавычки ввести свой имейл
        // тема письма
        $subject = "Письмо с обратной связи";
         
        // заголовок письма
        $headers= "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=utf-8\r\n"; // кодировка письма
        $headers .= "From: Тестовое письмо <no-reply@test.com>\r\n"; // от кого письмо
         
        // отправляем письмо 
        mail($mail_to, $subject, $message, $headers);
    }
     


$name = $_POST['user_name'];
$token = "Сюда надо вставить ваш токен";
$chat_id = "а Тут вставьте ваш ид";
$arr = array(
  'Nickname: ' => $name, // Тут подхватывает поле с сайта и отправляет 'N1kname' можете сделать как вам удобно
);
    
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");

?>
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 1
Можно выделить код отправки в телеграмм в метод.
function send_to_telegram($name) {
    $token = "Сюда надо вставить ваш токен";
    $chat_id = "а Тут вставьте ваш ид";
    $arr = array(
        'Nickname: ' => $name, // Тут подхватывает поле с сайта и отправляет 'N1kname' можете сделать как вам удобно
     );
    
     foreach($arr as $key => $value) {
          $txt .= "<b>".$key."</b> ".$va$namelue."%0A";
     };

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


и вызвать этот метод после прохождения валидации и отправки письма
send_mail($message); // отправим письмо
send_to_telegram($_POST['user_name']);
Ответ написан
Ваш ответ на вопрос

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

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