Как сделать правильный запрос на php?

У меня есть кастомный хук битрикс24 и я на него пытаюсь сделать запрос, чтобы добавить лид в crm.
Делаю я это так, в js файле :
$('.form-send').submit(function () {
  const form = $(this);
  $.ajax({
      type: "POST",
      url: "/mail.php",
      data: form.serialize()
  });
  return false;
});


в обработчике php:
header('Access-Control-Allow-Origin: *');

if (empty($_POST['cllient'])) exit('Вы забыли ввести имя');
if (empty($_POST['phone'])) exit('Вы забыли ввести телефон');
$name = htmlspecialchars($_POST['cllient']);
$phone = htmlspecialchars($_POST['phone']);
$formSubject = htmlspecialchars($_POST['form_subject']);
$time = htmlspecialchars($_POST['time']);
$dateValue = htmlspecialchars($_POST['date']);
$messanger = htmlspecialchars($_POST['p1']);
$field1 = $_POST['quiz-1'];
$field2 = $_POST['quiz-2'];
$field3 = $_POST['quiz-3'];
$field4 = $_POST['quiz-4'];
$field5 = $_POST['quiz-5'];




$sURL = "https://crm.site.ru/local/create_lead.php";
$sPD = array(
    'Название_формы' => $formSubject,
    'client' => $name,
    'phone' => $phone,
    'Дата' => $dateValue,
    'Время' => $time,
    'Способ_связи' => $messanger,
    'Где_вы_хотите_сделать_ремонт' => $field1,
    'Укажите_площадь' => $field2,
    'Выберите_стили_которые_вам_нравятся' => $field3,
    'Какой_класс_материалов_вы_предпочитаете' => $field4,
    'В_какое_время_вы_хотите_приступить_к_ремонту' => $field5,

);



$aHTTP = array(
    'http' =>
        array(
            'method'  => 'POST',
            'header'  => 'Content-type: application/x-www-form-urlencoded',
            'content' => http_build_query($sPD)
        )
);
$context = stream_context_create($aHTTP);
$contents = file_get_contents($sURL, false, $context);
echo $contents;


Но лид не добавляется, в response вижу error. Подскажите что я делаю не так? может запрос не правильно создал
  • Вопрос задан
  • 169 просмотров
Пригласить эксперта
Ответы на вопрос 2
Immortal_pony
@Immortal_pony Куратор тега PHP
А это, простите, что вы пытаетесь сделать-то?
$txt = '';
foreach ($sPD as $key => $value) {
    $txt .= "<b>".$key."</b>".$value."%0A";
}


сейчас получается, что вы пытаетесь отправить серверу кусок какго-то невнятного текста, а он ожидает пар ключ+значение, закодированных в urlencode.
Не знаю, каких конкретно переменных ожидает ваш хук, но подозреваю что должно быт так:

'content' => http_build_query($sPD)

... а кусок с foreach'ем этим не нужен вовсе

PS Ещё больше непонятно, зачем весь этот кусок на php, когда данные формы можно сразу отправить в CRM, прямо из JS.
Ответ написан
Rst0
@Rst0
объявить пустую переменную не забыли?
$txt = ''; 
foreach ($sPD as $key => $value) {
    $txt .= "<b>".$key."</b>".$value."%0A";
};
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы