Приветствую уважаемых знатоков тематики.
Есть код php, отвечающий за отправку сообщений в Telegram:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (!empty($_POST['name']) && !empty($_POST['phone'])){
if (isset($_POST['name'])) {
if (!empty($_POST['name'])){
$name = strip_tags($_POST['name']);
$nameFieldset = "Имя пославшего: ";
}
}
if (isset($_POST['phone'])) {
if (!empty($_POST['phone'])){
$phone = strip_tags($_POST['phone']);
$phoneFieldset = "Телефон: ";
}
}
if (isset($_POST['theme'])) {
if (!empty($_POST['theme'])){
$theme = strip_tags($_POST['theme']);
$themeFieldset = "Тема: ";
}
}
$ip=$_SERVER["REMOTE_ADDR"];
$brose=$_SERVER["HTTP_USER_AGENT"];
$txtname = trim($_POST['name']);
$txtNameValue = trim($_POST['name_class_value']);
$txtphone = trim($_POST['phone']);
$txttheme = trim($_POST['theme']);
// от кого
$fromMail = 'info@mysite.com';
$fromName = 'заявка с сайта';
// Сюда введите Ваш email
$emailTo = 'for@mysite.com';
$subject = 'Форма обратной связи';
$subject = '=?utf-8?b?'. base64_encode($subject) .'?=';
$headers = "Content-type: text/plain; charset=\"utf-8\"\r\n";
$headers .= "From: ". $fromName ." <". $fromMail ."> \r\n";
// тело письма
$body = "Получена заявка с сайта https://mysite.com\n\nИмя: $txtname\nТелефон: $txtphone\nТема: $txttheme\n\nIP отправителя: $ip\nБраузер отправителя: $brose";
$mail = mail($emailTo, $subject, $body, $headers, '-f'. $fromMail );
//echo 'ok';
$token = "111111111111111111111111111111111111111111";
$chat_id = "-111111111";
$arr = array(
$nameFieldset => $name,
$phoneFieldset => $phone,
$themeFieldset => $theme
);
foreach($arr as $key => $value) {
$txt .= "<b>".$key."</b> ".$value."%0A";
};
$txt = str_replace('+','%2B',$txt);
$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");
if ($sendToTelegram) {
echo '<p class="form-title success">Молодец<br />Будешь лучше!</p>';
return true;
} else {
echo '<p class="form-title fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
}
} else {
echo '<p class="form-title fail">Ошибка. Вы заполнили не все обязательные поля!</p>';
}
} else {
header ("Location: /");
}
?>
Сообщения приходят в телеграм в следующем виде: +7 (999) 999-99-99
Только вот номер не кликабелен, а это неудобно. Видимо, где-то есть маленький недочёт. Но где? Многие для кликабельности мучаются, чтобы сделать +7, и тогда им начинает приходить в мессенджер кликабельный номер. Здесь же +7 есть (насколько я понимаю, реализовано этой строкой " $txt = str_replace('+','%2B',$txt); " , но кликабельности нет.
Могу так же приложить JS файл формы отправки, но, по-моему, собака зарыта в php, а не JS.