PHP: Имитация XHR с использованием cURL

Сегодня я пытаюсь сделать работу cron для регистрации в форуме, чтобы проверить статистику онлайн. Сценарий login.php принимает запрос ajax с представленными формами значения: пользователь, пароль, сервер и идентификатор хэша (в скрытом поле). Я уже могу представить значения сценарию входа в систему и сохранить сессию с помощью кука-файла cookie, но когда я пытаюсь передать необходимые параметры (исходящие из sendlogin.php), он, кажется, отклоняет запросы, которые не содержат правильные заголовки запросов , Поэтому мне нужно знать, как я смоделировал это с помощью cURL:

GET login.php?user=foo&password=bar&server=1&id=7131c359e534e3790eaefa495d621b2a HTTP/1.1 Host: someloginserver.com User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Accept: application/json, text/javascript, */*; q=0.01 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive X-Requested-With: XMLHttpRequest Referer: http://someloginserver.com/sendlogin.php Cookie: __cfduid=de2fe207593d1135fc2426fb06e3270741303115848; hellobar_current=1300711502; hellobar_1300711502_variation=11462; PHPSESSID=cc621c6f57c43130d51d3147e319d8c2 

надеюсь, вы могли бы помочь мне в этом.

В PHP api для завивки вы можете использовать:

 curl_setopt($curl, CURLOPT_HTTPHEADER, array( "Host" => "someloginserver.com", "User-Agent" => "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1", "Accept" => "application/json, text/javascript, */*; q=0.01", "Accept-Language" => "en-us,en;q=0.5", "Accept-Encoding" => "gzip, deflate", "Accept-Charset" => "ISO-8859-1,utf-8;q=0.7,*;q=0.7", "Keep-Alive" => "115", "Connection" => "keep-alive", "X-Requested-With" => "XMLHttpRequest", "Referer" => "http://someloginserver.com/sendlogin.php" )); 

Но вашей реальной проблемой может быть Cookie :, которое я исключил выше. Настройте свой запрос cURL с помощью COOKIEJAR. Сделайте один неверный запрос, чтобы получить текущее значение сеанса, и только после этого отправьте свой фактический запрос XHR.

Этот формат массива не работает. Curl не принимает ассоциативные массивы. Каждый элемент должен быть строкой в ​​следующем формате:

  curl_setopt($ch, CURLOPT_HTTPHEADER, array( "Host: www.somehost.com", "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1", "Accept: application/json, text/javascript, */*; q=0.01", "Accept-Language: en-us,en;q=0.5", "Accept-Encoding: gzip, deflate", "Connection: keep-alive", "X-Requested-With: XMLHttpRequest", "Referer: http://www.somehost.com/" ));