Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] PHP|Логин на сайте (http://forum.oszone.net/showthread.php?t=159785)

morgan1991 10-12-2009 17:52 1291686

PHP|Логин на сайте
 
Здравствуйте!
Есть сайт файлообменник, например letitbit.net
Нужно залогинется на нём и затем скачать файл по заранее известной ссылке.
Вижу форму login.php ей отправляется POST-ом логин и пароль, но не понимаю если просто отправлю, то пользователь просто перейдёт на сайт letitbit.net уже залогиненым, а нужно чтоб пользователь не видел сам сайт, а чтоб скрипт перешёл по ссылке скачки файла.

doomspace 10-12-2009 17:57 1291697

парсь-те нужную страничку и выгребайте нужную ссылку. Так как скрипт с логином выполняется на другом сервере и отдаёт информацию страничке на том же сервере, а не Вам.

morgan1991 10-12-2009 18:18 1291712

Цитата:

Цитата doomspace
и выгребайте нужную ссылку »

Какую ссылку? Ссылка уже известна, но если не залогинется на сайте, по ней нельзя перейти...

doomspace 10-12-2009 18:58 1291736

а ну тогда нужны кукисы, ИМХО самый оптимальный вариант во фрейме подгружать страничку letitbit.net
после передачи ей данных

morgan1991 10-12-2009 20:03 1291811

Цитата:

Цитата doomspace
оптимальный вариант во фрейме подгружать страничку letitbit.net »

Не прокатит...
Куки должны быть на сервере, а не у пользователя. Т.к. сервер, где стоит php не сможет перейти по ссылке, потому что куки будут у пользователя, а не на сервере.

Igor_I 10-12-2009 20:22 1291833

Кто логинится, у того и куки.

Sham 10-12-2009 20:47 1291864

Там нужно на уровне протокола работать, через сокет. Комплексные запросы с обработкой заголовков (брать и отправлять кукисы). Для этого есть готовые решения.

morgan1991 11-12-2009 17:31 1292712

Вложений: 1
Мучался, мучался и ничего не смог написать...
Вот скачал клиент http (во вложениях), так и не понял как залогинется...
И ещё кстати я не уверен что корректно рассказал проблему, файл нужно не скачать, а открыть для чтения.
Т.е. нужно залогинеться на сайте, затем уже залогиненым на сайте открыть файл для чтения, т.к. если не залогинеться, то файл не будет доступен...
В архиве есть файл t.php в нём я пытался залогинеться на форуме vbulletin-овском.

Igor_I 11-12-2009 21:43 1292888

var $debug = 0; поставь в 1
Я не пользовался классом, но думаю что надо использовать getheaders для получения заголовков.
При каждом запросе на сервер надо посылать заголовки addheader и их получать.

Sham 12-12-2009 21:52 1293661

из ответа парсим Set-Cookie и отправляем значения в заголовке Cookie... если в облом читать протокол, то формат заголовков можно через firebug (или другой) подсмотреть.

morgan1991 13-12-2009 13:29 1294120

Сделал так:
PHP код:

<?php
include "Client.php";

$http = new Net_HTTP_Client"letitbit.net"80 );
$http->setProtocolVersion"1.1" );
$http->addHeader"Host""letitbit.net" );
$http->addHeader"Connection""keep-alive" );
$params = array( "log" => "логин""pas" => "пароль" );
$status $http->post"/tmpl/login.php"$params );
$headers $http->getHeaders();
foreach (
$headers as $header)
{
echo 
"$header<br>";

$http->disconnect();
?>

Всё вроди норм работает...
Если пароль и логин верен, то в заголовке возвращает ( getHeaders(); ):

Цитата:

nginx/0.7.62
Sun, 13 Dec 2009 10:22:04 GMT
text/html
chunked
keep-alive
PHP/5.2.11
log=тут логин; expires=Wed, 23-Dec-2009 10:22:04 GMT; path=/; domain=letitbit.net; pas=тут мд5 пароля; expires=Wed, 23-Dec-2009 10:22:04 GMT; path=/;
domain=letitbit.net
http://letitbit.net/
Теперь я так понял нужно получить куки и добавить их через addCookie( cookieName, cookieValue ), чтобы они отправлялись каждый раз, но как их получить????

Igor_I 13-12-2009 20:23 1294444

morgan1991, какой у тебя браузер?

morgan1991 13-12-2009 20:54 1294471

Igor_I, Mozilla Firefox 3.5.5

Спасибо, понял...
Хранится только две куки log и pas... а эти данные возвращаются в заголовке...


Время: 05:05.

Время: 05:05.
© OSzone.net 2001-