Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос по php и api telegram (новичек)

Егор Дальнов Ученик (92), на голосовании 3 года назад
Доброго времени суток!)
Написал простую форму обратной связи, а так же скрипт php обработчик этой формы, который передеает данные в чат телеграм с помощью бота
Вопрос:
как сделать, чтобы сообщение присылаемое ботом было в столбик?
Код:
/*собираем сообщение*/
$message .= "Пользователь ввел данные с формы";
$message .= "Имя: ".$fio;
$message .= "Телефон:".$phone;

Присылаемое сообщение бота:

Пользователь ввел данные с формыЛогин: ДмитрийПароль: 123123

Как сделать чтоб сообщение бота выглядело так?

Пользователь ввел данные с формы:
Логин: Дмитрий
Пароль: 123123

Советовали /n, но не помогает, форма перестает работать
Голосование за лучший ответ
Михаил Королёв Просветленный (23649) 3 года назад
Как от добавления /n в текст сообщения может перестать работать форма? Ты куда именно добавлял /n?
Егор ДальновУченик (92) 3 года назад
$message .= "Пользователь ввел данные с формы \n";
$message .= "Имя: ".$fio."\n";;
$message .= "Телефон:".$phone;

возможно не так посоветовали, или что то нет так сделал, помоги)
Михаил Королёв Просветленный (23649) Егор Дальнов, а какие функции у бота самого есть? Может стоит боту передавать не одно сообщение с /n, а каждый раз вызывать вывод ботом текста?
Егор ДальновУченик (92) 3 года назад
в 2 строке одна точка с запятой*
Егор ДальновУченик (92) 3 года назад
$message .= "Мамонт ввел данные с формы";
$message .= "Имя: ".$fio;
$message .= "Телефон:".$phone;
Вот код рабочий, объясни пожалуйста куда добавлять)
Егор ДальновУченик (92) 3 года назад
<?php
/*получаем значения полей из формы*/
$phone = $_POST['phone'];
$fio = $_POST['fio'];

/*функция для создания запроса на сервер Telegram */
function parser($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
if($result == false){
echo "Ошибка отправки запроса: " . curl_error($curl);
return false;
}
else{
return true;
}
}

/*собираем сообщение*/
$message .= "Мамонт ввел данные с формы";
$message .= "Имя: ".$fio;
$message .= "Телефон:".$phone;
Егор ДальновУченик (92) 3 года назад
/*токен который выдаётся при регистрации бота */
$token = "1902331672:AAFQ4PCi2oIp47i0aH4nG93cVWzbTHirOl0";
/*идентификатор группы*/
$chat_id = "-408915428";
/*делаем запрос и отправляем сообщение*/
parser("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$message}");

?>
Михаил Королёв Просветленный (23649) Егор Дальнов, попробуй добавить urlencode($message), вместо просто $message. В конце, где уже к боту обращение.
Егор ДальновУченик (92) 3 года назад
вот код)
Я новичек, не знаю как лучше, нужно просто чтобы бот передавал данные введенные с формы в чат телеграма в таком виде:
Пользователь ввел данные в форму:
Имя: Пример
Пароль: пример
Михаил Королёв Просветленный (23649) Егор Дальнов, просто в http запросе не может быть перевода строки, там он кодируется через %0A
Александра ПоповаУченик (104) 2 года назад
$message .= "Пользователь ввел данные с формы";

$message .= "Имя: ".$fio."%0A";

$message .= "Телефон:".$phone."%0A";

/* Так вставь себе, заработает, %0A это вместо <br> для телеги */
Похожие вопросы