Вам необходимо сделать вызов cURL, используя POST, который передает обязательные поля в качестве полей сообщения. Функция
Завиток() ниже будет это делать, если вы передаете его:
$url = 'https://domain.com/SaveCart/{SessionID}';
С {SessionID} заменяется на идентификатор сеанса и:
$fields[ 'first_name' ] = 'Bob';
$fields[ 'last_name' ] = 'Smith';
$fields[ 'city' ] = 'Seattle';
С Бобом, Смит, и Сиэтл заменил соответствующий текст;
Тогда просто вызовите функцию, как:
$result = curl($url, $fields);
Функция URLify ниже завитка() вызывается завитка() для преобразования $ полей в формат, необходимый для разноски.
function curl($url, $fields = FALSE, $encode = TRUE, $tries = 1) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
if (($fields == FALSE)) {
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
} else {
if (is_array($fields)) {
$fields_string = URLify($fields, $encode);
curl_setopt($ch, CURLOPT_POST, count($fields));
} else {
$fields_string = $fields;
curl_setopt($ch, CURLOPT_POST, 1);
}
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
}
do {
$output = curl_exec($ch);
$tries = $tries - 1;
if ((curl_errno($ch) <> FALSE) AND ($tries > 0)) {
echo 'ERROR in curl: WILL RETRY AFTER 1 SECOND SLEEP! error number: ' . curl_errno($ch) . ' error : ' . curl_error($ch) . " url: $url";
sleep(1);
}
} while ((curl_errno($ch) <> FALSE) AND ($tries > 0));
// Check if any error occurred
if (curl_errno($ch)) {
echo 'ERROR in curl: NO MORE RETRIES! error number: ' . curl_errno($ch) . ' error : ' . curl_error($ch) . " url: $url";
}
curl_close($ch);
return $output;
}
Эта функция называется функцией завитка():
function URLify($arr, $encode = FALSE) {
$fields_string = '';
foreach($arr as $key => $value) {
if ($encode) {
$key = urlencode($key);
$value = urlencode($value);
}
$fields_string .= $key . '=' . $value . '&';
}
$fields_string = substr($fields_string, 0, (strlen($fields_string) - 1));
return $fields_string;
}
Учитывая, используя AJAX для отправки данных? –
Нет AJAX, просто сообщение HTTP. –
Поскольку вы отметили PHP, вам лучше всего запустить запрос CURL. [** Это **] (https://davidwalsh.name/curl-post) - хороший пример того, как это сделать. – Darren