cURL не работает - PullRequest
       3

cURL не работает

0 голосов
/ 19 марта 2012

Хорошо, я хочу войти, используя cURL на какой-то странице.Когда я вставляю эти данные в адресную строку в этой форме в браузере, страница http://mywebpage.net/login.php?username=HERESMYUSERNAME&password=dded0102f44e7e0809520eb93055cb16 выводит меня на адрес http://mywebpage.net/user.php, и все работает.Теперь я хочу получить тот же эффект, используя cURL, но что-то не работает.

$url="http://mywebpage.net/login.php"; 
$cookie="cookie.txt"; 

$postdata = "username=cow&password=ass";

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 

if (!$result) { 
        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
        curl_close($ch); // make sure we closeany current curl sessions 
        die($http_code.' Unable to connect to server. Please come back later.'); 
    } 
echo $result;  
curl_close($ch);

показывает мне страницу входа с пустыми вводами, и я не могу войти и перейти на правильный адрес.Когда я набираю www.mywebpage.net/user.php показывает «Err 401»

Рабочий код здесь:

$url="http://mywebpage.net/login.php?username=user&password=ddad0102f44e7f0800354eb11155cb16"; 
$cookie="cookie.txt"; 

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 

if (!$result) { 
        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
        curl_close($ch); // make sure we closeany current curl sessions 
        die($http_code.' Unable to connect to server. Please come back later.'); 
    } 
echo $result;  
curl_close($ch);

Как теперь я могу перенаправить себя в /all.php?

1 Ответ

1 голос
/ 19 марта 2012

Я вижу 3 неправильные вещи

  1. Вы используете CURL POST вместо GET
  2. CURLOPT_FOLLOWLOCATION имеет значение false, но ваш сценарий входа в систему выполняет перенаправление на user.php, даже еслиаутентификация работает, вы получите пустой ответ.Я думаю, вам следует установить для CURLOPT_FOLLOWLOCATION значение true
  3. URL-адрес, который вы указали, недействителен или не работает .. Я не уверен, является ли это реальным URL или просто примером.

Спасибо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...