PHP Curl отправка пустого массива - PullRequest
0 голосов
/ 15 октября 2010

Хорошо, я проверил другие вопросы, подобные этому, и ни один из них, похоже, не указывает на решение моей проблемы.У меня есть следующий код:

<?PHP
$tamanho = $_REQUEST['tamanho'];

$post_data['item_quant'] = $_REQUEST['item_quant'];
$post_data['email_cobranca'] = $_REQUEST['email_cobranca'];
$post_data['tipo'] = $_REQUEST['tipo'];
$post_data['moeda'] = $_REQUEST['moeda'];
$post_data['item_id'] = $_REQUEST['item_id'].$tamanho;
$post_data['item_descr'] = $_REQUEST['item_descr'].'%20Tamanho%20'.$tamanho;
$post_data['item_valor'] = $_REQUEST['item_valor'];
$post_data['peso'] = $_REQUEST['peso'];
$post_data['encoding'] = $_REQUEST['encoding'];
$post_data['submit_01'] = $REQUEST['submit_01'];

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "[erased for security]");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$result = curl_exec($curl);
curl_close($curl);

header('Location:[erased for security]');
?>

Это простой код для отправки запроса на публикацию на другой веб-сайт после того, как я немного изменил идентификатор продукта и описание, чтобы сделать их более уникальными (поэтому я ненужно создавать разные продукты для каждого цвета и размера одежды).Однако это приходит на другую страницу в виде пустого массива $ _POST.Расположение в заголовке - это то же местоположение, куда отправляется запрос на публикацию.

Об переменной $ result не сообщается об ошибках.

Вывод curl_getinfo ($ curl) показывает отправляемый массивидеально.

Среда - PHP 5, а используемая библиотека - php_curl.dll.

Что-то происходит между страницей A, отправляющей массив, и страницей B, получающей массив.

Ответы [ 3 ]

1 голос
/ 15 октября 2010

Тем не менее, он попадает на другую страницу в виде пустого массива $ _POST. Расположение во главе - это то же место, куда отправляется запрос на публикацию.

Подождите минутку? Вы пытаетесь отправить кого-то на страницу, которую вы только что опубликовали? Вы не можете сделать это, перенаправление пользователя приведет к тому, что пользователь / браузер / пользовательский агент выполнит запрос GET независимо от того, что вы публикуете ранее. Что вы видите, если вы echo $result; вместо перенаправления? Есть ли на этой странице правильные данные? Тогда скручиваемость просто работает. Если вы хотите, чтобы пользователь получил сообщение, вам придется повторить какую-то форму и, возможно, выполнить магию javascript, чтобы он сразу отправлялся на ваш целевой URL.

1 голос
/ 15 октября 2010

Однажды у меня была эта проблема с CURL. Я не углубился в это слишком глубоко, чтобы понять, почему она произошла (возможно, какая-то проблема с используемой CURL LIB). Я нашел обходной путь, используя http_build_query в моем массиве

0 голосов
/ 09 декабря 2010

Я думаю, вы должны сначала набрать $post_data для запроса строки, а затем отправить ее.Это решит вашу проблему.

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