Что такое вебхук – webhook? И как его подключить?
Я некоторое время реально не мог понять, что такое вебхук)) Оказалась это совершенно простая технология, поэтому особо никто и не пишет об этом. Сейчас опишу как это работает в связке с моей базой данных на PHP Mysql и в данном случае сайтом на тильде. Думаю, это применимо и к другим конструкторам. Сам я не люблю конструкторы от слова СОВСЕМ, из за ограничений))) но в силу обстоятельств на моей работе приходится работать с конструкторами. Вопрос задан не только чтоб я сам дал на него ответ, но и может есть более интересные решения?
Ответы (1 шт):
На сервере два файла: connect.php и webhook.php
connect.php
в файле коннект прописываем подключение к базе данных.
<?php
header('Access-Control-Allow-Origin: *');
$server = "localhost"; /* имя хоста (уточняется у провайдера), если работаем на локальном сервере, то указываем localhost */
$username = "usernameBD"; /* Имя пользователя БД */
$password = "passwordBD"; /* Пароль пользователя, если у пользователя нет пароля то, оставляем пустым */
$database = "nameBD"; /* Имя базы данных, которую создали */
// Подключение к базе данный через MySQLi
$mysqli = new mysqli($server, $username, $password, $database);
//Для удобства, добавим здесь переменную, которая будет содержать название нашего сайта
$address_site = "https:// example.com ";
?>
webhook.php Позже нам его нужно будет поменять, чтоб он отсылал данные в базу данных.
Ваш сайт с файлом: https://example.com/webhook.php (за место этого домена «example.com» должен быть ваш домен) Эта ссылка и есть вебхук, берем эту ссылку и вставляем на сайте от куда отсылаются данные из формы. Сначала вставляем этот тестовый код чтоб получить сообщение об успешном тесте (за место моей почты «[email protected]» ставим свою)
<?php
header('Access-Control-Allow-Origin: *');
$headers = "From: [email protected]";
$message = print_r($_POST,true);
@mail('[email protected]', 'Tilda TEST', $message, $headers);
echo "ok";
?>
webhook.php Измененный вебхук.
В этом скрипте происходит два действия:
1) Отправка массива данных сообщением на почту.
2) Добавление данных в базу данных.
<?php
header('Access-Control-Allow-Origin: *');
$headers = "From: [email protected]";
$message = print_r($_POST,true);
@mail('[email protected]', 'Tilda TEST', $message, $headers);
echo "ok";
require_once("connect.php");
$result_query_insert = $mysqli->query("INSERT INTO `users` (full_name, login, email, password, avatar) VALUES ('".$_POST['full_name']."', '".$_POST['login']."', '".$_POST['email']."', '".$_POST['password']."', '".$_POST['avatar']."')");
$result_query_insert->close();
$mysqli->close();
?>
Создание базы данных одним действием!
Мы просто вбиваем в панели пхп-май-админ в разделе SQL вот эту команду и нам не нужно вручную вписывать все поля и создавать users.sql:
CREATE TABLE `users` (
`id` int(10) NOT NULL,
`full_name` varchar(355) DEFAULT NULL,
`login` varchar(100) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`password` varchar(500) DEFAULT NULL,
`avatar` varchar(500) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;