Нужно отправить запрос на некий сайт такого вида: site.ru/text?AAA=aaa&BBB=bbb&CCC=ccc, а перед этим эти самые aaa, bbb, ccc узнать у пользователя.
Узнали через форму, записали в переменные $a, $b, $c.
Сделали общую переменную: $send = site.ru/text?AAA=$a&BBB=$b&CCC=$c
Осталось эту самую переменную методом либо POST либо GET отправить на другой сайт.
Для подстраховки вывожу себе значение переменной $send, чтобы проверить, что мы там насобирали из форм. Значение всегда верно, и если его скопировать и вставить в адресную строку - то получатель эту команду обработает.
Осталось попробовать заставить скрипт отправлять эти данные самостоятельно.
Попробовал сначала обойтись без cURL, вычитал метод передачи через сокеты - не сработало.
Тогда решил подключать cURL, но всё равно я получаю тот же ответ: не указан первый параметр (AAA). Полагаю, что-то обрезает всё что находится после /?, поскольку если для интереса ввести URL просто site.ru (без /text/), то в ответ у меня начинает главная страница сайта.
Вот пример отправки значения (кстати, он взят из схожего вопроса на тостере, и других примеров с других сайтов я перепробовал немало - не работает ничего).
$myCurl = curl_init();
curl_setopt_array($myCurl, array(
CURLOPT_URL => 'http://site.ru/text/',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query(array($send))
));
$response = curl_exec($myCurl);
curl_close($myCurl);
echo "Ответ на Ваш запрос: ".$response;
Есть ли способ вывести себе и посмотреть, что отправляет скрипт?
UPDATE: опытным путем выяснил, что обрезается всё что стоит после знака ?.
Если отправить запрос site.ru/text, то ответ будет: не указаны данные параметра. Если отправить не переменную а текст site.ru/text?AAA=aaa, то ответ будет: не указан параметр AAA.
Так что теперь стоит новый вопрос: почему обрезается вторая половина запроса?