CURLOPT_FOLLOWLOCATION эмуляция - PullRequest
       3

CURLOPT_FOLLOWLOCATION эмуляция

0 голосов
/ 10 ноября 2011

Как эмулировать CURLOPT_FOLLOWLOCATION?Эта функция отключена на моем веб-сервере.

Я хочу получить статистику с сайта, но не могу получить нужную страницу.

Запрос:

POST https://www.example.com/login HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22
Content-Length: 200
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Origin: https://www.example.com
Content-Type: application/x-www-form-urlencoded
Referer: https://www.example.com/login?logout=1&final_logout=1&
Accept-Language: ru-RU
Accept-Encoding: gzip, deflate
Cookie: mochipass_session=
Connection: keep-alive
Proxy-Connection: keep-alive

t_token=%3A1320923163%3A191098013553085002228331177770025958552%3AvcXtA5YwNT58Nt6uEGK-gvwpGqM%21&email=mytesingcomp&password=mytesingcomp&remember_me=on&login=Login&service=ads&host=www.mochimedia.com

Ответ:

HTTP/1.1 302 Moved Temporarily
Date: Thu, 10 Nov 2011 11:06:40 GMT
Connection: close
Set-Cookie: example_session=mytesingcomp&1320923200&H3rV7aMe&euqh6CL4I7x2PgtWcsJa-X0n_r4!; Version=1; Expires=Thu, 24-Nov-2011 11:06:40 GMT; Max-Age=1209600; Secure
Server: Example/1.0 (Any of you quaids got a smint?)
Location: https://www.example.com/login?email=mytesingcomp%40mail.ru&alias=mytesingcomp&status=verified&registered_service=ads&timestamp=1320923200&nonce=hmCFzV-9&hmac=EHNUJYf2dbVsg8Y-J7iEdzgHyT0%21&login=login
Content-Length: 46
X-Example-Server: 38.102.129.29:443
P3P: policyref="http://www.example.com/p3p/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"
X-Example-Backend: 10.0.0.107:40061
X-Example-Source: 10.0.0.237:44200

CONGRATULATIONS, you're logged in. Redirecting

Теперь нам нужно сделать редирект, как сделать это с помощью cURL?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2011

Проблема решена!Мне нужно было добавить только две строки:

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 10 ноября 2011

хорошо, попробуйте использовать конструкцию по умолчанию, например:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

если это не поможет вам, попробуйте выполнить ручной анализ ответа, например:

if (preg_match('/Location: (.+?)[\r\n]+/', $page, $m)) {
    $location = $m[1];
    $page = curl_get($location);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...