Подключение форм через PHP

Для подключения форм к нашему обработчику через php необходимо в параметре action у ваших форм указать путь до скрипта в формате .php и method="post"

Код скрипта:


<?php
//домен куда отправляется запрос
define('DESTINATION_DOMAIN', 'https://api.primegate.io/v2');
//точка куда отправляется запрос
define('API_METHOD_LEAD_CREATE', '/js-client/form-request');
//название функции отправки формы
function sendRequestPrimeGate(){
//указываем глобальные переменные
   global $_REQUEST,$_COOKIE;
//Берем из кук информацию и декодируем ее
   $settings = json_decode($_COOKIE['primegate_settings'], true);
//Инициализирует сеанс cURL
   $curl = curl_init();
//указываем что будет в cURL
   curl_setopt_array($curl, array(
//указали адрес точку ключ и токен
       CURLOPT_URL => DESTINATION_DOMAIN . API_METHOD_LEAD_CREATE . '?apiKey=Ваш апи ключ&token=' . $settings['session']['token'],
//для возврата результата передачи в качестве строки из curl_exec() вместо прямого вывода в браузер.
       CURLOPT_RETURNTRANSFER => true,
//для использования обычного HTTP POST.
       CURLOPT_POST => true,
//Все данные, передаваемые в HTTP POST-запросе.
       CURLOPT_POSTFIELDS => http_build_query([
           'sessionId' => $settings['session']['id'],
           'email' => $_POST['email'], //поле формы емейл, в данном случае берется name="email"
           'name' => $_POST['name'], //поле формы имя, в данном случае берется name="name"
           'phone' => $_POST['phone'], //поле формы телефон, в данном случае берется name="phone"
           'pageUrl' => $_REQUEST['url'],
           'pageTitle' => $_REQUEST['url']
       ]),
//проверка сертификата узла
       CURLOPT_SSL_VERIFYPEER => 0,
//отключение проверки имени в SSL
       CURLOPT_SSL_VERIFYHOST => 0
   ));
//получение cURL
   $response = curl_exec($curl);
//закрытие cURL
   curl_close($curl);
//возврат ответа
   return $response;
}
//отправка запроса
$result = sendRequestPrimeGate();
//возврат на страницу откуда была отправлена форма если необходимо
//header( 'Location: http://test.primegate.io/contact.html' );
//или ниже полноценный редирект на сообщение о отправке заявки
?>

Сообщение о том что заявка отправлена


<!DOCTYPE html>
<html lang="en">
<head>
   <script>
       setTimeout(function () {
           window.location.href = "<?php echo $_SERVER['HTTP_REFERER']; ?>";
       }, 2000);
   </script>
</head>
<body>
<div class="wrapper">
   <div class="caption">
       <div class="line line-1">
           <span>
           Заявка отправлена
           </span>
       </div>
       <div class="line line-2">
           <span>
           ожидайте звонка от нашего специалиста
           </span>
       </div>
   </div>
</div>
</body>
</html>
<style>
   body {
       margin: 0;
       padding: 0;
   }
   .wrapper {
       height: 300px;
       width: 600px;
       font-size: 30px;
       font-family: SansSerif;
       color: #333;
       display: block;
       position: absolute;
       text-align: center;
       vertical-align: middle;
       border-bottom-left-radius: 150px;
       border-bottom-right-radius: 150px;
       border-top-left-radius: 20px;
       border-top-right-radius: 20px;
       /*background-image: url(image.png);*/
       /*background-size: cover;*/
       /*background-color: #5bc0de;*/
       background: #f8ffe8;
       /*background: linear-gradient(to bottom, #f8ffe8,#e3f5ab 33%,#b7df2d);*/
       background: linear-gradient(to bottom, #f8f8f8,#e3e3e3 33%,#b7b7b7);
       background-size: 600px 300px;
   }
   .line {
       display: flex;
   }
   .caption span {
       margin: auto;
   }
   .line-1 span{
       font-size: 130%;
       font-weight: bold;
   }
</style>
<script>
   var wrapper = document.querySelector('body > div.wrapper');
   caption = wrapper.querySelector('div.caption'),
       lines = wrapper.querySelectorAll('div.caption > .line'),
       image = wrapper.querySelector('div.image');
   var screenResize = function(){
       wrapper.style.top = ((innerHeight - wrapper.clientHeight) / 2) + 'px';
       wrapper.style.left = ((innerWidth - wrapper.clientWidth) / 2) + 'px';
       caption.style.height = (wrapper.clientHeight / 1.5) + 'px';
       caption.style.width = wrapper.clientWidth + 'px';
       lines.forEach(function(item){
           item.style.height = (caption.clientHeight / lines.length) + 'px';
           item.style.width = caption.clientWidth + 'px';
       })
   }
   document.onload = screenResize();
</script>

Обратите внимание что вам необходимо указать ваш apiKey, его можно найти в коде счетчика.

https://cloud.primegate.io/projects/site/code

Число в строке PrimeGate.init это и есть ваш apiKey

Дополнительно если вам не нужен редирект после отправки формы вы можете добавить форме параметр target="hiddenFrame" и над формой добавить код:

<iframe name="hiddenFrame" width="0" height="0" border="0" style="display: none;"></iframe>