Не выходит авторизация с помощью Curl на сайте

denntl
На сайте с 14.10.2007
Offline
112
1107

Здравствуйте. Пытаюсь авторизоваться на сайте advego.ru. Использую вот такой вот код:

<?php 
function isAuth( $data ){
return preg_match('#<form[^>]+id="logout"#Usi',$data);
}
$ch = curl_init();
$url = '"http://advego.ru/login/';
curl_setopt($ch, CURLOPT_URL, $url ); // отправляем на
curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут4
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookies.txt');
curl_setopt ($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookies.txt');
curl_setopt($ch, CURLOPT_POST, 1); // использовать данные в post
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'login'=>'test-to-test@lenta.ru',
'pwd'=>'AdVeGo123',
'action'=>'login',
'uri'=>'',
'captcha'=>'tmp_value',
));
echo isAuth($data = curl_exec($ch))?'Success':'Failed';
curl_close($ch);
?>

Данные можно использовать для теста.

Код возвращает неудачу.

Вот что возвращает Chrome при ручной авторизации: http://bmlife.ru/chrome.jpg

Кстати, куки не пишутся, почему-то.

Буду очень благодарен за помощь или наводящую мысль.

[umka]
На сайте с 25.05.2008
Offline
456
#1

Добавить реферера? Юзерагента?

Убрать двойную кавычку в урле?

Вообще, способов защиты от автоматической обработки есть масса.

Лог в помощь!
denntl
На сайте с 14.10.2007
Offline
112
#2
'[umka:
;12076637']
Вообще, способов защиты от автоматической обработки есть масса.

Вы думаете там специально все прикрыто?

'[umka:
;12076637']Добавить реферера? Юзерагента?
Убрать двойную кавычку в урле?

<?php 


$ch = curl_init();
$url = "http://advego.ru/login/";
curl_setopt($ch, CURLOPT_URL, $url ); // отправляем на
curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
curl_setopt($ch, CURLOPT_REFERER, "http://advego.ru/");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут4
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookies.txt');
curl_setopt ($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookies.txt');
curl_setopt($ch, CURLOPT_POST, 1); // использовать данные в post
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'login'=>'test-to-test@lenta.ru',
'pwd'=>'AdVeGo123',
'action'=>'login',
'uri'=>'',
'captcha'=>'tmp_value',
));
echo curl_exec($ch);
curl_close($ch);

?>

Тоже не дается.

дани мапов
На сайте с 06.09.2012
Offline
204
#3

Может на хостинге CURLOPT_FOLLOWLOCATION не работает.

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
denntl
На сайте с 14.10.2007
Offline
112
#4

Попробовал прописать урл без login и с login - авторизация прошла.

Спасибо!

дани мапов
На сайте с 06.09.2012
Offline
204
#5
denntl:
На других сайтах нормально проходит авторизация (пробовал на ДЛЕ).

Ясный пень, что на других работает :). Вы же поэтому и создали тему, что на адвего не срабатывает.

denntl
На сайте с 14.10.2007
Offline
112
#6
дани мапов:
Ясный пень, что на других работает :). Вы же поэтому и создали тему, что на адвего не срабатывает.

:)

Вобщем, как-то заработало, спасибо)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий