Авторизация на сайте с помощью curl

M
На сайте с 03.06.2012
Offline
73
4595

Здравствуйте, нужно с помощью curl авторизоватся на сайте. Посмотрел при авторизации отправляются такие данные


login:my_login
passwd:my_passwd
remember_me:on
check_ip:on
submit:(unable to decode value)
auth:auth
return_url:/login//?auth=logout

в php делаю так:


$url = strval("http://site.ru/login/");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'login=my_login&passwd=my_paswd&remember_me=on&check_ip=on&submit=&auth=auth&return_url=/login//?auth=logout'
);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookies.txt'); // вроде куда сохранять
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookies.txt'); // вроде откуда брать
curl_setopt ($ch, CURLOPT_COOKIE, session_name() . '=' . session_id());
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($content);
curl_close($ch);

Но в результате перекидает на главную и авторизация не проходит. Что я делаю не так? Огромное спасибо за ответы.

Апокалипсис
На сайте с 02.11.2008
Offline
391
#1

Телепаты в отпуске.

http://phpfaq.ru/debug

Записки нищего (http://zapiskinishego.ru) - мой личный блог Услуги php программиста. Очень нужна любая работа. Не покупают? Поведенческий аудит интернет-магазина за 5000 руб. (/ru/forum/990312)
M
На сайте с 03.06.2012
Offline
73
#2
Апокалипсис:
Телепаты в отпуске.
http://phpfaq.ru/debug

Готов уточнить вопрос скажите что еще нужно?

izbushka
На сайте с 08.06.2007
Offline
110
#3

Смотрите заголовки и текст возвращаемой страницы, возможно там есть ответ.

meverikxp:
return_url:/login//?auth=logout*

Это выглядит немного подозрительно :) Хотя, конечно, все может быть.

R
На сайте с 06.02.2011
Offline
62
#4

curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookies.txt');

curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookies.txt');

cookies.txt файл на запись доступен либо 666 либо 777

и лучше написать так

curl_setopt ($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookies.txt');

curl_setopt ($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookies.txt');

Если не так написал вызов полного пути - профы, подправьте

M
На сайте с 03.06.2012
Offline
73
#5
izbushka:
Смотрите заголовки и текст возвращаемой страницы, возможно там есть ответ.


Это выглядит немного подозрительно :) Хотя, конечно, все может быть.

Сейчас уже выкидает

Извините, страница временно недоступна, что делаю не так? куда копать?

izbushka
На сайте с 08.06.2007
Offline
110
#6

А может администраторы сайта не хотят чтоб вы так поступали? Если это так, то им гораздо проще мешать вам, чем вам обходить их защиту..

RiDDi
На сайте с 06.06.2010
Offline
256
#7

сделайте вот так

$url = strval("http://site.ru/login/");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'login=my_login&passwd=my_paswd&remember_me=on&check_ip=on&submit=&auth=auth');
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookies.txt'); // вроде куда сохранять
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookies.txt'); // вроде откуда брать
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($content);
curl_close($ch);

что бы проверить правильный ли путь к файлам куков посмотрите пишутся они туда или нет )

под "перекидывает" Вы имеете ввиду ответ в виде редиректа или в виде главной?

посмотрит что точно возвращает сервер, а не то, что Вы видите в браузере..

Вебмастер отдыхает на бережках морей. Заработок в интернете - дело техники.

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