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

Форум PHP

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

 

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

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

тема: Передача параметров/данных методом POST через заголовки
 
 автор: cyberface   (19.07.2006 в 14:41)   письмо автору
 
 

Сразу к делу:
есть следующий код:

<?php


# Script to flood 

$hostname "site.ru"
$path "/login/"
$SID;

$fp fsockopen($hostname80$errno$errstr30); 



if (!
$fp) {
    echo 
"$errstr ($errno)<br />\n"
}
else {
    echo 
"Success<br />\n";
      

    
#
    # Блок авторизации 
    #

    
   
$data ="name=".urlencode("Maxigan")."&password=".urlencode("cfbebdeb")."&\r\n\r\n"
    
$headers "POST $path HTTP/1.1\r\n"
    
$headers .= "Host: $hostname\r\n"
    
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
    
$headers .= "Accept: *\r\n"
    
$headers .= "Accept-Charset: *\r\n"
    
$headers .= "Accept-Encoding: deflate\r\n"
    
$headers .= "Accept-Language: ru\r\n"
    
$headers .= "User-Agent: Opera/8.01 (Windows NT 5.1; U; ru)\r\n"
    
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n"

    
$fw fwrite($fp$headers.$data);
    
    if(!
$fw)
    echo 
"Bad<br />\n";
    else 
    echo 
"Success<br />\n";
    
sleep(1);

    while (!
feof($fp))
    {  
        
$line fgets($fp1024);
        echo 
$line;  
        
// Ищем строку вида  
        // Set-Cookie: PHPSESSID=6197e647566bdaa24da3ab42ae7604b2; 
        // Именно она устанавливает cookie 
        
preg_match("|Set-Cookie: PHPSESSID=([\d\w]+);|i",$line,$out); 
        
        if(!empty(
$out[1]))
        { 
          global 
$SID;
          
$SID $out[1];
          echo 
$SID;           
        }      
  
        
    }  

       
       
       
       
    
#
    # Блок отправки сообщения
    #  закоментировал нафиг, ибо мешает
    /*
    $path = "/talk/reply/";
    $hostname = "forums.site.ru"; 
       
    $data     = "body=".urlencode("preved")."&id_topic=".urlencode("126089"); 
    $headers  = "POST $path HTTP/1.1\r\n"; 
    $headers .= "Host: $hostname\r\n"; 
    $headers .= "Content-type: application/x-www-form-urlencoded\r\n";    
    $headers .= "Cookie: UID=90024; PASSWORD=172d53988c1c05ae22f72874d009639b\r\n"; 
    $headers .= "Content-Length: ".strlen($data)."\r\n\r\n";
     

    $fw = fwrite($fp, $headers.$data);
    
    if(!$fw)
    echo "Bad<br />\n";
    else 
    echo "Success<br />\n";
       
       
    while(!feof($fp))
    echo fgets($fp,1000); 
    */
}


?>


Цель данного скрипта - опробовать сайт на возможность отправки сообщений через скрипт.
Прошу уделить пока внимание к блоку авторизации. Его смысл в следующем: передать сайту методом POST имя и пароль для авторизации.
Если имя и пароль неправильные, то скрипт выведет страницу логина, в которой сайт попросит ввести корректные данные.
Если имя и пароль правильные, то выводятся только следующие заголовки:

HTTP/1.1 301 Moved Permanently Date: Wed, 19 Jul 2006 10:03:25 GMT Server: Apache/1.3.34 (Unix) Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Content-Encoding: deflate Expires: Thu, 19 Nov 1981 08:52:00 GMT Pragma: no-cache Vary: Accept-Encoding X-Powered-By: PHP/5.1.4
Set-Cookie: PHPSESSID=hbebbgmag4520u9rmslqhhj560; path=/; domain=site.ru
Set-Cookie: USERID=2013034054; expires=Sat, 16-Jul-2016 10:03:25 GMT; path=/; domain=site.ru Set-Cookie: USERID=90024; expires=Fri, 18-Aug-2006 10:03:25 GMT; path=/; domain=site.ru Set-Cookie: PASSWORD=172d53988c1c05ae22f72874d009639b; expires=Wed, 26-Jul-2006 10:03:25 GMT; path=/; domain=site.ru Cache-Control: max-age=0 Expires: Wed, 19 Jul 2006 10:03:25 GMT Last-Modified: Wed, 19 Jul 2006 10:03:25 GMT Location: http://www.site.ru Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=windows-1251 d xњ

Соответственно никакой авторизации не происходит. Вопрос: отчего возникает ошибка 301? Что неправильного в коде?

   
 
 автор: cheops   (19.07.2006 в 15:51)   письмо автору
 
   для: cyberface   (19.07.2006 в 14:41)
 

Код возврата 301 - это переадресация, скрипт просит вас загрузить URL по ссылке, указанной в заголовке Location.

   
 
 автор: cyberface   (19.07.2006 в 18:07)   письмо автору
 
   для: cheops   (19.07.2006 в 15:51)
 

Спасибо, модифицировал скрипт - все работает =)

   
Rambler's Top100
вверх

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