Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Автосабмиттер
Форум программистов > Интернет и сети > Web-программирование > PHP программирование
Adamant
Уважаемые программисты, нужна ваша помощь.
Осваиваю HTTP. Решил написать автосабмиттер для тренировки.Не могу понять в чем дело. Скрипт должен авторизовываться на сайте методом пост.

Взял за образец сайт loadit.ru , (думаю ни кого не обижу).
Форма для входа такая:
<form method="post">
<input name="login_name" type="text">
<input name="login_password" type="password">
<input name="login" type="hidden" id="login" value="submit"><
</form>

Скрипт написал такой:
set_time_limit(0); 
//Логин и пароль 666666
$fp = fsockopen("loadit.ru", 80, $errno, $errstr, 30);
if (!$fp)
  {
      echo "$errstr ($errno)<br />\n";
   exit();
  }
$post_data = "login_name=666666&login_password=666666&login=submit";
$out = "POST / HTTP/1.1\r\n";
$out .= "Host: loadit.ru\r\n";
$out .= "Connection: Close\r\n\r\n";
$out .= "Accept: text/html;\r\n";
$out .= "Referer: http://loadit.ru\r\n";
$out .= "Connection: Close\r\n";
$out .= "Content-Length: ".strlen($post_data)."\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n\r\n";
$out .= $post_data;
fwrite($fp, $out);

$result = '';
while (!feof($fp))
  {
   $result .= fgets($fp, 128);
  }
fclose($fp);

// зарегились
$fp = fsockopen("loadit.ru.", 80, $errno, $errstr, 30);
if (!$fp)
  {
   echo "$errstr ($errno)<br />\n";
   exit();
  }
preg_match_all('/Set-Cookie: ([^;]+)/',$result,$cook,PREG_PATTERN_ORDER);
echo "<pre>";
print_r($cook);
echo "</pre><br />";
$out = "GET / HTTP/1.0\r\n";
$out.= "Cookie: ".implode("; ",$cook[1])."\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp))
  {
   echo "<pre>";
   echo fgets($fp, 128);
   echo "</pre>";
  }
fclose($fp);

Сервер прислал такие заголовки:
Array   
(  
    [0] => Array  
        (  
            [0] => Set-Cookie: PHPSESSID=ac75f6d75f4a7c9110deba355d5d2b4a  
        )  
  
    [1] => Array  
        (  
            [0] => PHPSESSID=ac75f6d75f4a7c9110deba355d5d2b4a  
        )  
  
)  
  
  
HTTP/1.1 200 OK  
  
Date: Sun, 13 Jan 2008 00:34:27 GMT  
  
Server: Apache/2  
  
Last-Modified: Wed, 24 Oct 2007 22:56:55 GMT  
  
ETag: "2060403-2c-8b59bc0"  
  
Accept-Ranges: bytes  
  
Content-Length: 44  
  
Vary: Accept-Encoding,User-Agent  
  
Connection: close  
  
Content-Type: text/html  
  
Apache is functioning normally

Авторизоваться не получается. Несколько дней провел за чтением мануалов, но не нашел ответа на свою проблему.
Как получить тело самой страницы, которая после этого отображается?
Пробовал потом смотреть readfile этой же страницы, но там авторизации нет. Вот и не знаю, что мне с этим делать?
Однозначно нужен ваш совет специалиста.
С уважением Вячеслав.
MajestiC
Лучше curl используй.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.