A) В первой части вопроса вы не проверяли, отправлена форма или нет;и таким образом, верхний PHP-код выполняется каждый раз при загрузке страницы.Для решения этой проблемы нам нужно проверить, отправлена ли форма:
измените кнопку отправки с:
<input type="submit" class="btn btn-primary" value="Entrez les informations" align="left">
на:
<input type="submit" name="submitedFrom" class="btn btn-primary" value="Entrez les informations" align="left">
Кнопка отправки должнаиметь атрибут name, чтобы его можно было отправлять через переменную $ post.
if(isset($_POST['submitedFrom']) && is_array($_POST) && !empty($_POST) && $_POST['submitedFrom'] == 'Entrez les informations'){
// Fetch session last typed data
session_start();
$_SESSION['name'] = (isset($_POST['name']) ? $_POST['name'] : '');
$_SESSION['phone'] = (isset($_POST['phone']) ? $_POST['phone'] : '');
$_SESSION['gpa'] = (isset($_POST['gpa']) ? $_POST['gpa'] : '');
$_SESSION['type'] = (isset($_POST['type']) ? $_POST['type'] : '');
//Define Errors
$name_err ='Veuillez entrer le nom';
.
.
.
}
Таким образом, при отправке формы и после отправки значения кнопки submit в переменной post форма будет отправлена.
B) Для второй части вопроса, я полагаю, вы знаете, как добавить запись в БД.поэтому я объясняю, как отправить сообщение на канал Telegram, чтобы каждый участник канала мог видеть сообщения (отправленные данные формы).но я должен предупредить вас, что он содержит много чтения и исследований.Мое объяснение - всего лишь руководство по этому процессу.
Примечание: Вы должны проверить своего бота-телеграммы на реальном сервере, и он не будет работать на локальном хосте.Существуют и другие инструменты, такие как ngrok , которые позволяют вам проверить его на локальном хосте, создав границу между вашим локальным и искусственным временным сервером.
Шаги инициализации бота Telegram:
1 - Во-первых, вы должны построить бота в боте, являющемся отцом telegram, чтобы получить токен бота для вашего бота после присвоения ему имени
2 - создать канал и затем добавить ботана канал
3 - Дайте разрешение на чтение и запись в опциях канала для вашего бота (таким образом, бот может отправлять сообщения в канал)
4 - Установите веб-крючок для вашегобот, набрав этот код в адресной строке браузера:
https://api.telegram.org/bot<bot-token>/setWebhook?url=<webhook-url>
<bot-token> - bot token get from BotFather on Telegram
<webhook-url> - webhook url in base64
Устанавливая веб-крючок, вы сообщаете telegram об общении с ботом по этому URL.На самом деле, вы указываете место, где существует логика вашего бота.
5 - С помощью этой функции вы можете отправлять сообщения через бота в канал:
define('BOT_TOKEN', <bot-token>);
define('API_URL', 'https://api.telegram.org/bot' . BOT_TOKEN . '/');
function apiRequest($method, $parameters, $token=null) {
foreach ($parameters as $key => &$val) {
if (!is_numeric($val) && !is_string($val)) {
$val = json_encode($val);
}
}
if(empty($token))
$url = API_URL.$method;
else
$url = "https://api.telegram.org/bot$token/".$method;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
$response = curl_exec($ch);
return $response;
}
Переменная метода - это предопределенные методы telegram дляобщаться с API.Вы можете увидеть весь список методов отправки сообщений здесь .
В этом примере вы можете отправить сообщение на канал:
$params = [
'chat_id' => 'channels chat id',
"text" => 'form data that you want to send',
]
apiRequest("sendMessage", $params);
Надеюсь, это поможетВы, но не забудьте внимательно прочитать документацию, прежде чем переходить к кодированию.