Логин в cURLe

Статус
В этой теме нельзя размещать новые ответы.

argh

Создатель
Регистрация
18 Мар 2008
Сообщения
46
Реакции
0
Привет всем. Я изучаю курл. Взял для примера рамблер. Хочу залогиниться.
Действую так:
Зашел на Для просмотра ссылки Войди или Зарегистрируйся. Смотрю в код.
Нашел - <input name="login"
<input name="passw" эти имена использую для создания пост запроса.

PHP:
 $url="http://planeta.rambler.ru"; 
 $post = "login=Vasya&passw=Parol_Vasi";
	
$ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $url);
          curl_setopt($ch, CURLOPT_POST, true);
          curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1)");
          curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  				$result = curl_exec($ch);
      
	  			echo $result;
 curl_close($ch);

В результат он мне выдает просто страницу Для просмотра ссылки Войди или Зарегистрируйся
Где я ошибся?
(Он после логина редиректит на другой урл - что тогда должно выдаваться в $result?)

П.с. Правильный и неправильный пароль дают тот же результат

Хелп
 
Добавь curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Тогда curl пройдёт по редиректу.
 
  • Нравится
Реакции: argh
работает

Вот так заработало:
PHP:
<?php
$url="https://id.rambler.ru/script/auth.cgi"; 
$post = "mode=login&back=http%3A%2F%2Fplaneta.rambler.ru%2Fusers%2F&url=&login=loginvasi&passw=passwvasi&long_session=on";
$ch = curl_init();
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1)");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
	curl_setopt($ch, CURLOPT_COOKIEFILE, rand(1111,99999).'.ck');
	curl_setopt($ch, CURLOPT_REFERRER, "http://planeta.rambler.ru/");
            $result = curl_exec($ch);
    
            echo $result;
curl_close($ch);
?>

Во-первых, не все поля передавались. Во-вторых, я добавил строчки которые отвечают за прием и запись кук.
 
  • Нравится
Реакции: argh
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху