Авторизация через curl

voland

Guest
Авторизация через curl

Здравствуйте. Извините, что я возможно не первый человек, задавший этот вопрос, но поиск на слово curl мне почему-то пишет, нет прав для просмотра страницы.

Мне надо через curl подключиться к сайту, авторизоваться и сохранить страницу в файл. Все знаю как сделать кроме одного момента.
Как оказалось, сайт авторизовывает только в том случае, если включенны куки и JS. Не подскажите, что я должен сделать, чтобы авторизовывающий скрипт принял меня, как пользователя?

З.Ы. Не знаю, как сейчас, раньше такие темы закрывали и говорили, воровать контент нехорошо. Сразу поясню, я не ворую контент, к сожалению не представляю, как это можно подтвердить. К контенту все равно имею доступ только я.
 

Фанат

oncle terrible
Команда форума
насколько мне известно, в curl не встроен интерпретатор яваскрипт

я бы на твоём месте еимел доступ не к контенту, а к системе авторизации.
 

voland

Guest
я бы на твоём месте еимел доступ не к контенту, а к системе авторизации
Не очень понял...
подумай, как он об этом узнает?
Ну... я бы попробовал записать куку и посмотреть на результат.

Ладно, оставим JS в покое, а насчет кук, такое возможно?
 

voland

Guest
Попробую сформировать вопрос более понятно :)
Я пытаюсь сохранить нужную мне страницу в файл. Но немогу нормально авторизоваться и в результате вместо нужной мне страницы сохраняеться страница ошибки авторизации.
Ошибка: отключена поддержка cookie
Соответственно, мне надо "включить" куки, но поскольку я подключаюсь через скрипт, то у меня возник вопрос, можно ли симулировать включенность кук?
 

voland

Guest
Прошу прощения, за дезинформацию... он здесь вообще не причем. Это я дураком оказался.
 

dmitryk

Новичок
Получи куки от сервера и передай их обратно. Как еще он может определить, что куки отключены?
 

BOJIK

Новичок
voland
поизучай внимательно вот эти две опции у курла
CURLOPT_COOKIEJAR
CURLOPT_COOKIEFILE
Должен все сам понять
 

voland

Guest
Извините, за глупость смотрю тут
http://www.php.net/manual/ru/function.curl-setopt.php
Но невижу таких параметров, где можно про них почитать?
 

voland

Guest
Не пойму, это что издеваются так надо мной? Я смотрел все, там нет таких. Примеры есть, описания нет.
 

dmitryk

Новичок
Описание могу привести:
CURLOPT_COOKIEFILE The name of the file containing the cookie data. The cookie file can be in Netscape format, or just plain HTTP-style headers dumped into a file.
CURLOPT_COOKIEJAR The name of a file to save all internal cookies to when the connection closes.
CURLOPT_HEADERFUNCTION The name of a callback function where the callback function takes two parameters. The first is the CURL resource, the second is a string with the header data to be written. Using this callback function, it becomes your responsibility to write the header data. Return the number of bytes written.
По-моему, примеры более содержательны.
 

voland

Guest
Большое спасибо.
Раз уж я тут поднял тему про curl спрошу ещё один вопрос.
Если при авторизации помимо кук на меня заводится сессия, как я могу обращаясь к другим страницам использовать её?
З.Ы. Извините, если спросил глупость, просто я с ними первый раз столкнулся...
 

voland

Guest
Извините, за мою тупость, но что-то у меня не ладиться...
Я что-то упустил?
PHP:
$ch = curl_init($url);
$fp = fopen("test.html", "w");
curl_setopt($ch, CURLOPT_USERPWD, "login:password");
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_exec($ch);
curl_close($ch);
fclose($fp);
 

dmitryk

Новичок
> curl_setopt($ch, CURLOPT_USERPWD, "login<img src="images/smilies/tongue.gif" border="0" alt="">assword");
Это что еще такое?

CURLOPT_USERPWD A username and password formatted as "[username]:[password]" to use for the connection.
 

mike

pmcoder
Почитай про протокол HTTP.
Как только ты все поймеш про него - сразу решишь все свои проблемы
 
Сверху