Проблемы с использованием cURL в командной строке и использованием его при переполнении стека

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

curl "http://domain/"%"27/ajaxform" -H "Cookie: PHPSESSID=l2pgk9rqihvo5n5gf3uq79c5e6" -H "Origin: http://domain" -H "Accept-Encoding: gzip,deflate" -H "Accept-Language: es,en-US;q=0.8,en;q=0.6,es-419;q=0.4" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -H "Accept: */*" -H "Referer: http://domain/inicio" -H "X-Requested-With: XMLHttpRequest" -H "Connection: keep-alive" --data "formName=option1&other=attributes" --compressed > resp.txt

Я могу получить результаты в файле resp.txt.

Но, запустив его в PHP, я получаю только http_code 500, я использую следующий код в PHP

function check_cdd($optionname, $sessionid){

$url="http://domain/".urlencode("'")."/ajaxform";
$cookie="cookie.txt";
$postvars = 'formName='.$optionname.'&other=attributes';
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_ENCODING , "");
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postvars);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLINFO_HEADER_OUT, false);
curl_setopt ($ch, CURLOPT_HEADER, false);

curl_setopt($ch,CURLOPT_HTTPHEADER,array(
'Cookie: PHPSESSID='.$sessionid,
'Origin: http://domain',
'Accept-Encoding:gzip,deflate',
'Accept-Language: es,en-US;q=0.8,en;q=0.6,es-419;q=0.4',
'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36',
'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
'Accept: */*',
'Referer: http://domain/inicio',
'X-Requested-With: XMLHttpRequest',
'Connection: keep-alive'));$result = curl_exec ($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($result, 0, $header_size);print("<pre>");
print_r(curl_error($ch));
print_r(curl_getinfo($ch));

echo $result;

print("</pre>");

curl_close($ch);}.

Я пробовал разные параметры и опции на стороне PHP, но всегда получаю 500 кодов в ответ, не знаю, что еще попробовать. Заранее спасибо за ваши ответы

0

Решение

500 означает внутреннюю ошибку сервера … так что помогите мне отладить ваш код, удалив $postvars из вашей функции curl_setopt (), она не существует из вашей командной строки, и я подозреваю, что это может быть источником ошибки сервера

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector