Как настроить формы обратной связи к ВК

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

В этой статье мы разберём как настраивается форма обратной связи к социальной сети ВКонтакте.

1) Подготовливаем HTML-форму к работе

Для начала давайте рассмотрим пример HTML-кода формы, с которой мы будем работать. Если у Вас уже есть свой сайт, на котором вы хотите настроить отправку формы обратной связи к ВК, рекомендую предварительно настроить на чистой форме, проверить результат, а затем уже перенести его на свой сайт.

	<form action="sendform.php" method="post">
		<input type="text" name="name" placeholder="Введите имя"><br>
		<input type="text" name="phone" placeholder="Введите телефон"><br>
		<input type="submit">
	</form>

Данный код формы необходимо вставить в пределах тега <body>, чтобы получилось примерно вот так:

Теперь давайте разберёмся подробнее в HTML-коде формы. В самой первой строчке кода формы мы видим следующее:

<form action="/../sendform.php" method="post">

В атрибуте action указывается путь к PHP-обработчику писем (он находится в архиве и немного позже его нужно будет загрузить на сайт). Обращаю ваше внимание на символы в самом начале пути к PHP-обработчику “/../” – это говорит о том, что путь будет начинается только с корневой папки вашего сайта. Если вы не меняли название обработчика (sendform.php), то указываем также как и в примере.

Атрибут method должен иметь значение “POST”, если у вас нет этого атрибута – его необходимо обязательно добавить.

Следующее, что мы видим, это код полей и кнопки отправки у формы:

<input type="text" name="name" placeholder="Введите имя"><br>
<input type="text" name="phone" placeholder="Введите телефон"><br>
<input type="submit">

Как вы видите, кнопки и поля в данном примере имеют один и тот же тег – input. Разница только в атрибуте type. Если у тега input прописан type=”text”, то это будет текстовое поле, которое можно заполнить. Если у тега input прописан type=”submit” – этот код будет выглядеть как кнопка для отправки формы. Соответственно, вы можете добавить ещё одно поле, либо удалить какое-то из текущих. Чтобы добавить новое поле, под одним из тегов input вы можете скопировать и вставить один из уже готовых вариантов.

Теперь про другие атрибуты тега input:

Атрибут name=”” – должен иметь уникальное значение. У поле с именем в примре выше уникальное значение указано как “name”. Вместо name вы можете указать любое название латинскими буквами, чуть позже нам потребуется это название указать в PHP-обработчике sendform.php, чтобы он знал из каких полей брать информацию.

Атрибут placeholder=”” – в значении этого атрибута обычно пишут описание поля. Например, у поля с именем значение будет “Введите имя”. Когда вы зайдете на сайт, изначально в поле где вы указали плейсхолдер будет написан тот текст, что вы указали в этом атрибуте.

На этом подготовительная часть закончена. Переходим к основному – это подключение PHP-обработчика формы обратной связи.

Подключаем PHP-обработчик к форме обратной связи для отправки в соц. сеть ВКонтакте

В первую очередь давайте посмотрим на пример файла sendform.php, что находится в архиве из этой статьи:

<?php
  $name = $_POST['name']; // input name="name"
  $phone = $_POST['phone']; // input name="phone"

  $message = "Новый заказ на сайте".PHP_EOL."Имя: ".$name.PHP_EOL."Телефон: ".$phone; //Обрабатываем данные из формы, для передачи их в письме PHP_EOL - это перенос на другую стороку

  send(23423534,$message); // id страницы на которую будут отправляться заявки

  function send($id , $message) {
    $url = 'https://api.vk.com/method/messages.send';
    $params = array(
      'user_id' => $id,    // Кому отправляем
      'message' => $message,   // Что отправляем
      'access_token' => '',  
      'v' => '5.62',
    );

    $result = file_get_contents($url, false, stream_context_create(array(
        'http' => array(
          'method'  => 'POST',
          'header'  => 'Content-type: application/x-www-form-urlencoded',
          'content' => http_build_query($params)
        )
    )));
  }
?>


<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Отправка формы</title>
</head>
<body>
	<div class="loader">
		<div class="center">
			<h1 style="text-align: center;">Всё ок!</h1>
		</div>
	</div>
</body>
</html>

Сразу обращаю ваше внимание на первые строчки обработчика. В них мы видим следующее:

  $name = $_POST['name']; 
  $phone = $_POST['phone']; 

Именно в этих строчках мы указываем, из каких полей формы брать информацию. В данном примере указано 2 поля, это имя (name=”name”) и телефон (name=”phone). Опять же вернусь немного назад, чтобы освежить память. В предыдущем примере мы подготавливали форму, в которых было 2 поля и одна кнопка (три input’a). В первых двух input’ах, в атрибутах name мы указали значения, которые в итоге продублировали в PHP обработчик. Ещё раз приведу пример этой формы, чтобы было более понятно:

	<form action="sendform.php" method="post">
		<input type="text" name="name" placeholder="Введите имя"><br>
		<input type="text" name="phone" placeholder="Введите телефон"><br>
		<input type="submit">
	</form>

Если, к примеру, вы хотите добавить сюда новое поле с “почтой”, то добавляем ещё один input по примеру предыдущих двух:

<input type="text" name="pochta" placeholder="Введите почту"><br>

Как вы можете заметить, в атрибуте name я указал значение pochta. Теперь, чтобы мой PHP-обработчик принимал это поле, мне необходимо добавить ещё одну строчку чтобы указать новое поле. Выглядеть это будет примерно вот так:

 $name = $_POST['name']; 
 $phone = $_POST['phone']; 
 $pochta = $_POST['pochta']; 

Таким образом мы добавили новое поле со значением pochta в наш sendform.php. Почти готово, но это ещё не всё. Чуть ниже, в том же sendform.php находим следующую строчку:

$message = "Новый заказ на сайте".PHP_EOL."Имя: ".$name.PHP_EOL."Телефон: ".$phone; //Обрабатываем данные из формы, для передачи их в письме PHP_EOL - это перенос на другую стороку

В этой строчке у нас формируется тело письма. Все данные, которые PHP-обработчик собирает выше – формируются сюда и отправляются к вам. Чтобы сильно не заморачиваться в коде, вы можете просто скопировать один из примеров, например вот эту часть:

Имя: ".$name.PHP_EOL."

Вместо “Имя” пишем “почта”, вместо $name – указываем $name. Теперь добавляем нашу конструкцию в тело письма. Выглядеть это будет примерно вот так:

$message = "Новый заказ на сайте".PHP_EOL."Имя: ".$name.PHP_EOL."Почта: ".$pochta.PHP_EOL."Телефон: ".$phone; //Обрабатываем данные из формы, для передачи их в письме PHP_EOL - это перенос на другую стороку

И последнее, что нам необходимо сделать, это указать ваш токен VK. Находим такую строчку в нашем PHP-обработчике:

'access_token' => '',  

Там, где пустые ковычки нам необходимо соответственно указать токен вашей страницы, куда будут приходить заявки с сайта. Получить токен можно в пару кликов вот тут – vkhost.github.io. Переходим на сайт, выбираем в списке “Kate Mobile” и разрешаем доступ. Если всё сделали правильно, то откроется вот такая страничка, где мы можем скопировать наш токен из адресной строки браузера.

И последнее – указываем наш access-token в настройках sendform.php и проверяем.

Если возникнут какие-либо трудности – пиши в комментариях и я моментально отвечу <3

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии