Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как послать несколько http-заголовков сразу?
 
 автор: pampushechca   (04.05.2007 в 00:32)   письмо автору
 
 

У меня есть задача - через пхп скрипт зайти на сайт, зарегистрироваться и в зарегистрированном состоянии зайти в подраздел.


$hostname = "www.host.ru";
$path = "/login.php";
$fp = fsockopen("$hostname", 80, $errno, $errdesc);
if (!$fp) die ("Can't connect: \nMistake: $errno\nDescription: $errdesc");
        $data     = "user=user&pass=123"; 
        $headers  = "POST $path HTTP/1.0\r\n"; 
        $headers .= "Host: $hostname\r\n"; 
        $headers .= "Referer: http://".$hostname.$path."\r\n"; 
        $headers .= "Content-type: application/x-www-form-urlencoded\r\n"; 
        $headers .= "Content-Length: ".strlen($data)."\r\n"; 
        $headers .= "Connection: Close\r\n\r\n"; 
        fwrite ($fp,$headers.$data); 
// 
$path = "/catalogue";
$data = "";
$headers  = "GET $path HTTP/1.0\r\n"; 
        $headers .= "Host: $hostname\r\n"; 
        $headers .= "Referer: http://".$hostname.$path."\r\n"; 
        $headers .= "Content-type: application/x-www-form-urlencoded\r\n"; 
        $headers .= "Content-Length: ".strlen($data)."\r\n"; 
        $headers .= "Connection: Close\r\n\r\n"; 
        fputs ($fp,$headers); 
$page = "";
while(!feof($fp))
   {
   $page .= fgets($fp, 1024);
   }
fclose($fp);
print $page;

Скрипт регистрируется, но в каталог не заходит. Подскажите что надо сделать, чтобы зайти в каталог.

   
 
 автор: Unkind   (04.05.2007 в 00:41)   письмо автору
 
   для: pampushechca   (04.05.2007 в 00:32)
 

Так делать нельзя. Нужно открыть новое соединение.

   
 
 автор: Trianon   (04.05.2007 в 00:42)   письмо автору
 
   для: pampushechca   (04.05.2007 в 00:32)
 

Надо не только отправлять данные запросов серверу, но и внимательно анализировать его ответы. Те самые, строки которых накапливаются в переменной $page.
В том числе и после отправки первого (POST) запроса, а не только после второго..

Кроме того нужно для исполнения второго (и вообще каждого очередного) запроса установить соединение заново.

   
 
 автор: pampushechca   (04.05.2007 в 00:49)   письмо автору
 
   для: Trianon   (04.05.2007 в 00:42)
 

Ага. Я кажется поняла. Там наверно кукисы посылаются и второе соединение просто надо с кукисами посылать.
Спасибо :-)

   
 
 автор: Trianon   (04.05.2007 в 00:53)   письмо автору
 
   для: pampushechca   (04.05.2007 в 00:49)
 

Вам могут ответить кукисами, могут предложением редиректа на другой адрес (или на тот же, но с GET-параметрами), могут отвергнуть....В любом случае ответ нужно анализировать.

   
 
 автор: pampushechca   (04.05.2007 в 01:01)   письмо автору
 
   для: Trianon   (04.05.2007 в 00:53)
 

Все получилось! :-)
Всех целую!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования