PHP получает и отправляет данные - PullRequest
0 голосов
/ 19 июня 2020

У меня есть следующий код php, он отправляет данные в инструмент потенциальных клиентов.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://mkt.university-private.internal/form/submit",                                                                                                                                                                                                                                                                                                                                                                           CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array('mauticform[f_email]' => 'gbsilva@gmail.com','mauticform[f_name]' => 'Gabriel','mauticform[formId]' => '5'),
  CURLOPT_HTTPHEADER => array(
    "X-Forwarded-For: 91.92.103.192"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Проблема в том, что мне нужно вводить данные вручную в скрипте php.

Теперь у меня есть CRM, которая выполняет POST и отправляет следующие данные в форме данных тела:

email=gbsilva@40gmail.com&name=Gabriel&IP=91.92.103.192&formId=5

мне нужно, чтобы мой код php принимал чтобы получить сообщение CRM с этими значениями выше и сделать запрос в моем инструменте потенциальных клиентов с данными, полученными из CRM.

в моей ERP, я могу позвонить по URL-адресу, и я вызову URL-адрес своего скрипт. php

ему нужно перед отправкой конвертировать и поместить название полей между этой номенклатурой, инструмент потенциальных клиентов принимает только поля с этой номенклатурой:

mauticform[f_FIELDNAME]

Кто-нибудь может помочь

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Очень просто, просто нужно использовать $_POST для передачи значений в переменные, а затем использовать его

<?php

$P_email = $_POST['email'];
$P_name = $_POST['name'];
$P_formId = $_POST['formId'];
$P_ip = $_POST['IP'];

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://mkt.university-private.internal/form/submit",   
  //..hidden                                                                                                                                                                                                                   
  CURLOPT_POSTFIELDS => array('mauticform[f_email]' => $P_email,'mauticform[f_name]' => $P_name,'mauticform[formId]' => $P_formId),

  //hidden

  //*update* FOR IP
  CURLOPT_HTTPHEADER => array(
    "X-Forwarded-For: $P_ip"
  ),
));


//..

ОБНОВЛЕНИЕ : Итак, чтобы адресовать динамические c имена переменных

//Create an array to hold the name=value pairs
$P_arr = [];
//Loop over $_POST and populate $P_arr
foreach($_POST as $key=>$value){
    $P_arr[$key] = $value; 
   // $key will run through all those keys' values you sent //name ,email ..
   // so will $value but on the literals like "gbsilva@40gmail.com", "Gabriel"
}

/* We have now an array of key value pairs */
// adjust the KEYs to "mauticform"'s format before using
$mauticformArr = [];

foreach($P_arr as $key=>$value){
   if($key != 'IP'){
      if($key!= 'formId')
        $mauticformArr['mauticform[f_'.$key .']'] = $value;
      else
        $mauticformArr['mauticform['.$key .']'] = $value;       
   }
}

// Then use inside you code as
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://mkt.university-private.internal/form/submit",   
  //..hidden                
CURLOPT_POSTFIELDS => $mauticformArr,
  //..hidden 
  //..
0 голосов
/ 19 июня 2020

Вы можете обнаружить, что "Guzzle" работает лучше, чем на самом деле использование CURL ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...