Помогите передать POST

Discussion in 'Болталка' started by Buffalon, 10 Apr 2010.

  1. Buffalon

    Buffalon Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Нужно передать пост запрос на страницу http://goldtown.ru/admin.php с паролем и именем , делаю так (знаю что КУРЛ РУЛИТ)
    как правильно ??
    пароль и логин в данном случае не верны ,я это знаю - не работает сам скрипт , пожалуйста помогите
    <?php
    //открываем сокет к http://www.example.loc на 80-й порт с таймаутом в 30 секунд
    $socket = fsockopen('goldtown.ru', 80, $errno, $errstr, 30);

    //если fsockopen вернула false, то завершаем работу скрипта и выводим текст и номер ошибки
    if(!$socket)die("$errstr($errno)");

    //собираем данные
    $data = "user_login=admin&&password=pass";

    //пишем в сокет метод, URI и протокол
    fwrite($socket, "POST /admin.php?dispatch=products.manage HTTP/1.1\r\n");
    //а также имя хоста
    fwrite($socket, "Host: goldtown.ru\r\n");

    //теперь отправляем заголовки
    //Content-type должен быть applicaion/x-www-form-urlencoded
    fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
    //размер передаваемых данных передаем в заголовке Content-length
    fwrite($socket,"Content-length:".strlen($data)."\r\n");
    //типы принимаемых данных. */* означает, что принимаем все типы данных
    fwrite($socket,"Accept:*/*\r\n");
    //представимся оперой
    fwrite($socket,"User-agent:Opera 10.00\r\n");
    fwrite($socket,"\r\n");

    //теперь передаем данные
    fwrite($socket,"$data\r\n");
    fwrite($socket,"\r\n");

    //теперь читаем и выводим ответ
    $answer = '';
    while(!feof($socket)){
    $answer.= fgets($socket, 4096);
    }
    preg_match("|Location:(\D+)Con|is",$answer,$res);
    echo $answer[1];
    echo file_get_contents("http://goldtown.ru/admin.php?dispatch=auth.login_form&return_url=admin.php");


    echo $answer;
    //закрываем сокет
    fclose($socket);
    ?>
     
  2. Jerri

    Jerri Elder - Старейшина

    Joined:
    12 Jul 2009
    Messages:
    136
    Likes Received:
    377
    Reputations:
    22
    Перехвати заголовки и посмотри как правильно.
     
  3. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,515
    Likes Received:
    400
    Reputations:
    196
    PHP:
    <?php
    function post($host$script$cont){
    $respons="";
    $postsock fsockopen($host80$errno$errstr60);
    if (!
    $postsock) echo $errstr($errno);
    else
    {
    $head "POST $script HTTP/1.1\r\n";
    $head .= "Host: $host\r\n";
    $head .= "Connection: close\r\n";
    $head .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $head .= "Content-Length: " .strlen($cont). "\r\n";
    $head .= "\r\n$cont\r\n";
    fwrite($postsock$head);
    while(!
    feof($postsock)){
    $respons .= fgets($postsock1024);
    }
    fclose($postsock);
    }
    return 
    $respons;
    }

    echo 
    post('goldtown.ru''/admin.php''user_login=admin&&password=pass');