PDA

Просмотр полной версии : PHP|Логин на сайте


MorgaN
11.12.2009, 19:16
Здравствуйте!
Вообщем проблема в следующем:
Скачал httpclient на php.
98054
Но не могу в нём разобраться.
В архиве файл t.php с моими наработками, также имеется инструкция на буржуйском.
Нужно с помощью этого модуля залогинеться на сайте и открыть для чтения файл находящийся там, для чтения.
@fopen($FileName, "rb");
Для гостей файл не доступен. Для примера батл форум...
Нужно залогинеться и открыть для чтения какоенибудь вложение недоступное гостям...
Заранее благодарен за помощь...

Ringo
12.12.2009, 22:44
morgan, а чего у тебя здесь то ГЕТ, то ПОСТ:
$http->Get( "/forum/login.php?do=login" );
$status = $http->post( "/forum/login.php?do=login", $params );

А вобще, пока подгоняешь скрипт - выставь
/// debugging flag
var $debug = 0;
в единицу...

MorgaN
13.12.2009, 13:29
в единицу...
Ставил уже.
а чего у тебя здесь то ГЕТ, то ПОСТ:
Дак логинеться же надо на /forum/login.php?do=login
т.е. на GET... и тут же надо отправить постом данные, но он чёт не хочет одновременно делать... вот и мучаюсь.

Добавлено через 1 час 14 минут
Сделал так:
<?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 ), чтобы они отправлялись каждый раз, но как их получить????