Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Не выходит авторизоваться через CURL
Сообщения
Makarov

Пытаюсь авторизироватся на 7bа при помощи курла. Ничего не выходит. Помогите, вот форма
что не так делаю.

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://7ba.ru/index.php?go=enter"); /* Переходим на страницу, на которой нужно пройти процедуру авторизации */
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"enter_login=tiwap&password=885522"); /* Внимание! Здесь необходимо передать параметры, полученные Вами от снифферав?? параметры разделяются знаком & */
curl_setopt($ch, CURLOPT_COOKIEJAR,$_SERVER['DOCUMENT_ROOT'].'/cookiefile.txt');
$result = curl_exec($ch);
curl_setopt($ch, CURLOPT_URL,"http://7ba.ru/fmp3/find.php"); /* Теперь заходите на сайт как авторизованный пользовательв?? в данном случае нужно вместо example.comуказать URL страницы, на которую может попасть только авторизованный пользователь*/
curl_setopt($ch, CURLOPT_POST, 0); /* Также необязательное действие, но я указал этот параметр в?? устанавливаю CURLOPT_POST в нуль, ведь теперь мне не нужно передавать данные методом POST */
curl_setopt($ch, CURLOPT_COOKIEFILE,$_SERVER['DOCUMENT_ROOT'].'/cookiefile.txt'); /* Внимание! Здесьтретий параметр (адрес текстового файла с куками) должен быть точно таким же, как и при использовании CURLOPT_COOKIEJAR, иначе процедура авторизации работать не будет, так как требуемые серверу Куки не передадутся */
$result = curl_exec($ch);

24 Ноя 2012, 14:13
Вован

http://7ba.ru/index.php?act=enter&go=enter
добавлено спустя 43 секунды:
enter_login=tiwap&enter_pass=885522

24 Ноя 2012, 15:01
Makarov

Вован, нифига непашет.

24 Ноя 2012, 15:25
aBSuRD

"полученные Вами от снифферав" ?

24 Ноя 2012, 15:48
Makarov

Чтото не так.
Вот как я преобразил это всё. Может сдесь косяк?
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://7ba.ru/index.php?act=enter&go=enter"); /* Переходим на страницу, на которой нужно пройти процедуру авторизации */
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"enter_login=tiwap&enter_pass=885522"); /* Внимание! Здесь необходимо передать параметры, полученные Вами от снифферавппп параметры разделяются знаком & */
curl_setopt($ch, CURLOPT_COOKIEJAR,$_SERVER['DOCUMENT_ROOT'].'/cookiefile.txt');
$result = curl_exec($ch);
curl_setopt($ch, CURLOPT_URL,"http://7ba.ru/fmp3/find.php"); /* Теперь заходите на сайт как авторизованный пользовательв в данном случае нужно вместо example.comуказать URL страницы, на которую может попасть только авторизованный пользователь*/
curl_setopt($ch, CURLOPT_POST, 0); /* Также необязательное действие, но я указал этот параметр устанавливаю CURLOPT_POST в нуль, ведь теперь мне не нужно передавать данные методом POST */
curl_setopt($ch, CURLOPT_COOKIEFILE,$_SERVER['DOCUMENT_ROOT'].'/cookiefile.txt'); /* Внимание! Здесьтретий параметр (адрес текстового файла с куками) должен быть точно таким же, как и при использовании CURLOPT_COOKIEJAR, иначе процедура авторизации работать не будет, так как требуемые серверу Куки не передадутся */
$result = curl_exec($ch);
$ch = curl_init("http://7ba.ru/fmp3/find.php?".$_SERVER['QUERY_STRING']);

curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: text/html, application/xml, application/xhtml xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;', 'Accept-Language: ru, en, *;', 'Accept-Charset: iso-8859-1, utf-8, utf-16, *;', 'Accept-Encoding: identity;', 'Connection: close'));
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['USER_AGENT']);
curl_setopt($ch, CURLOPT_REFERER, 'http://google.ru');

$file = curl_exec($ch);

$file=preg_replace('/<?(.*?)<div class="tl">/si','<div class="i">',$file);
$file=preg_replace('/<div class="v1">(.*?)<\/html>/si','',$file);
$file=str_replace('/img/kv.gif','/design/default/act.gif',$file);
echo $file;
curl_close($ch); 
?>

24 Ноя 2012, 15:51
Векселл

Всё не так.

24 Ноя 2012, 16:00
aBSuRD

Из мануала:
CURLOPT_COOKIEJAR
Имя файла, в котором будут сохранены все внутрение cookies текущей передачи после закрытия дескриптора, например, после вызова curl_close

24 Ноя 2012, 16:06
Makarov

aBSuRD, сменить на txt jаr так?

24 Ноя 2012, 18:30
xman12

Makarov, нет, расширение файла может быть любым, проверь стоят ли права на запись на файл, идет ли туда запись при авторизации, что то мне кажется ты либо файл не создал либо права не поставил

24 Ноя 2012, 18:43
aBSuRD

Makarov, нет

24 Ноя 2012, 18:43
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.