Как справиться с этим перенаправлением с помощью cURL - PullRequest
1 голос
/ 23 января 2012

Вот мой код:

echo post_data("http://www.ifreewind.net/iFreeWind.aspx",
               "__VIEWSTATE=%2FwEPDwULLTE3NjQ3MDc3NDQPZBYCAgMPZBYCAgEPFgIeB1Zpc2libGVoZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQUSUmVtZW1iZXJNZUNoZWNrQm94r57YdIUtbSps%2FGLW1PUtjxcILdE%3D&__EVENTVALIDATION=%2FwEWBQLKivfjBgLw2N3fDgLC9%2FChAwLxuKbKAgL%2BjNCfDwU6DJjH4Q2acTlGVXmDrSv2Nn4G&UserNameTextBox=myemailaddress%40gmail.com&PasswordTextBox=mypassword&LoginButton=%E7%99%BB%E9%99%86");

function post_data($site, $data){
    $datapost = curl_init();
    $headers = array("Expect:");
    curl_setopt($datapost, CURLOPT_URL, $site);
    curl_setopt($datapost, CURLOPT_TIMEOUT, 40000);
    curl_setopt($datapost, CURLOPT_HEADER, TRUE);
    curl_setopt($datapost, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($datapost, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($datapost, CURLOPT_POST, TRUE);
    curl_setopt($datapost, CURLOPT_POSTFIELDS, $data);
    curl_setopt($datapost, CURLOPT_COOKIEFILE, "cookie.txt");
    ob_start();
    return curl_exec($datapost);
    ob_end_clean();
    curl_close($datapost);
    unset($datapost);
}

Второй параметр функции

post_data()
- это результат, который я использовал с помощью Httpfox, сгенерированного плагином Firefox.Этот код не работает, потому что этот адрес автоматически перенаправляется на
http://www.ifreewind.net/Users/Index.aspx
, поэтому я не смог, пожалуйста, помогите мне пройти авторизацию.

Ответы [ 2 ]

1 голос
/ 23 января 2012

curl_setopt ($ datapost, CURLOPT_FOLLOWLOCATION , true);

0 голосов
/ 23 января 2012

try: CURLINFO_EFFECTIVE_URL - последний действующий URL

curl_setopt($datapost, CURLINFO_EFFECTIVE_URL, TRUE);
...