Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как имитировать POST запрос, Нужно залогинится с пом. PHP пароль изве 
:(
    Опции темы
Doggy123
Дата 18.11.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.11.2005

Репутация: нет
Всего: нет



Помогите кто знает. Нужно заити на сайт и пропарсить инфу. Логин и пароль известны. Пробовал использовать fsockopen но возможно что-то делал не так. Если можно не отсылая к мануалам обьясните на конкретном примере как можно залогинится.



Кроме того при обращении на страницу с логин-формой возникала ошибка вида:

Warning: Cannot modify header information - headers already sent by (output started
at /usr/home ... ... /lang_english.php:1)

in /usr/home ... ... /header.php on line 48





на всякий случай посылаю свой код:
Код

<?
set_time_limit(0);
ignore_user_abort(true);


$post_query= 'username=admin&user_password=ffdbdfbdfb&random_num=841308&gfx_check=&op=login';  //эти переменные были в форме на страничке с логином

$post_query = urlencode($post_query);

$host = www.blabla.com;
$path = 'http://www.blabla.com/modules.php?name=Your_Account&op=userinfo&bypass=1&username=admin';  
     $query =  "POST ".$path." HTTP/1.0\r\n";
     $query .= "Host: ".$host." \r\n";
     $query .= "Content-Type: application/x-www-form-urlencoded\r\n";
     $query .= "Content-Length: " .strlen($post_query)."\r\n";
     $query .= "\r\n".$post_query;
                          
$fp = fsockopen($host, '80');
if ($fp) 
{
  fputs($fp, $query);

else 
{
  die ('error');
}


while (!feof ($fp)) 
{

 echo $data = fgets ($fp, 10240);

}

?>


Это сообщение отредактировал(а) Doggy123 - 18.11.2005, 15:05
PM MAIL   Вверх
-=Ustas=-
Дата 18.11.2005, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Лучше поюзай библиотеку cUrl.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Doggy123
Дата 18.11.2005, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.11.2005

Репутация: нет
Всего: нет



Re: Ustas

А без curl-а ни-как?

И ее ведь кажется надо подключать отдельно
PM MAIL   Вверх
MuToGeN
Дата 18.11.2005, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: нет
Всего: 32



Цитата(Doggy123 @ 18.11.2005, 15:51)
И ее ведь кажется надо подключать отдельно

Раскомментировать одну строку в php.ini не такая уж и большая проблема...


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
-=Ustas=-
Дата 18.11.2005, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Цитата(Doggy123 @ 18.11.2005, 15:04)
Warning: Cannot modify header information - headers already sent by (output started
at /usr/home ... ... /lang_english.php:1)

in /usr/home ... ... /header.php on line 48

Это говорит о том, что у тебя где то был вывод в поток. Возможно и из за этого вся трабла.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Doggy123
Дата 18.11.2005, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.11.2005

Репутация: нет
Всего: нет



Цитата
Это говорит о том, что у тебя где то был вывод в поток. Возможно и из за этого вся трабла


То есть? ... Можно пожайлуста по-подробнее !
PM MAIL   Вверх
-=Ustas=-
Дата 19.11.2005, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



У тебя наверное инклюдится этот файл первым lang_english.php, и где то уже есть вывод в браузер.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Doggy123
Дата 19.11.2005, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.11.2005

Репутация: нет
Всего: нет



А! нет! lang_english.php не мой файл эта ошибка вылезает на сайте на который я логинюсь! Все-таки помогите с сокетами если что-нибудь можно сделать!

PM MAIL   Вверх
Doggy123
Дата 22.11.2005, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.11.2005

Репутация: нет
Всего: нет



Всем спасибо проблема решена! В ходе изысканий обнаружил некоторые мелочи, о которых можно сказать:
  • Первое необходимо всегда использовать функции работы с потоком с собачкой иначе есть шанс что в поток попадет что-нибудь не то
    (@ - отлючает уведомление об ошибках) Пример: @fsockopen, @fputs. И нельзя ничего принтовать до того как в поток не послан запрос (покрайней мере так было у меня и возникала ошибка на удаленном сайте "headers already sent" ).
  • И второе: оказывается можно открыть один поток и не закрывая его открыть еще несколько. Это мне помогло при посылке последующих запросов к сайту после авторизации (2 запроса в один поток записывать видимо нельзя!)

Возможно все, что я пишу кому-то очевидно но может кому-нибудь пригодится. Если что-либо вышепреведенное не верно напишите об этом!

Это сообщение отредактировал(а) Doggy123 - 23.11.2005, 09:01
PM MAIL   Вверх
vpokorp
Дата 12.1.2008, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 5.4.2006

Репутация: нет
Всего: нет



Вопрос автору:

А можно было бы привести пример готового и работающего кода? 

А то неработающий есть, а ...
PM   Вверх
maykoff
Дата 12.1.2008, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 19.8.2006

Репутация: нет
Всего: нет



PM MAIL   Вверх
Logree
Дата 25.1.2008, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



Возможно я не прав но скорее всего ошибка вот где... попробyй так...
Код

$host = 'www.blabla.com';
$path = '/modules.php?name=Your_Account&op=userinfo&bypass=1&username=admin';  


Это сообщение отредактировал(а) Logree - 25.1.2008, 21:37


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0877 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.