[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Эмуляция CURLOPT_FOLLOWLOCATION
mmonk
Как эмулировать поведение CURLOPT_FOLLOWLOCATION?
На хостинге не работает subj из-за open_basedir, нужно с сайта mochimedia получать стату, к сожалению опыта у меня в этом нет совсем.

Использовал этот код, но он не работает:


function curl_redirect_exec($ch, &$redirects, $curlopt_header = false) {
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code == 301 || $http_code == 302) {
list($header) = explode("\r\n\r\n", $data, 2);
$matches = array();
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
$url = trim(array_pop($matches));
$url_parsed = parse_url($url);
if (isset($url_parsed)) {
curl_setopt($ch, CURLOPT_URL, $url);
$redirects++;
return curl_redirect_exec($ch, $redirects);
}
}

if ($curlopt_header)
return $data;
else {
list(,$body) = explode("\r\n\r\n", $data, 2);
return $body;
}
}


Вот такие заголовки на примере тестового аккаунта:

Запрос:

POST https://www.mochipass.com/login HTTP/1.1
Host: www.mochipass.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.mochimedia.com
Content-Type: application/x-www-form-urlencoded
Referer: https://www.mochimedia.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&rememb er_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: mochipass_session=mytesingcomp&1320923200&H3rV7aMe&euqh6CL4I7x2PgtWcsJa-X0n_r4!; Version=1; Expires=Thu, 24-Nov-2011 11:06:40 GMT; Max-Age=1209600; Secure
Server: MochiWeb/1.0 (Any of you quaids got a smint?)
Location: https://www.mochimedia.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-MochiAds-Server: 38.102.129.29:443
P3P: policyref="http://www.mochimedia.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-Mochi-Backend: 10.0.0.107:40061
X-Mochi-Source: 10.0.0.237:44200

CONGRATULATIONS, you're logged in. Redirecting


В ответе редикт на адрес с куками, как правильно перейти по нему, сохраняя заголовок и все данные?



Спустя 1 час, 18 минут, 33 секунды (10.11.2011 - 17:14) Winston написал(а):
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

?

Спустя 1 час, 43 минуты, 2 секунды (10.11.2011 - 18:57) mmonk написал(а):
Цитата (Winston @ 10.11.2011 - 14:14)
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

?

Вот спасибо, а слона то я и не приметил - все время натыкался на эти строки, но как-то их игнорировал. С ними все заработало!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.