1. Мегаконкурс в апреле "Приведи друзей на codeby". Дарим деньги, подписку на журнал хакер и выдаем статус "Paid Access". Подробнее ...

    Скрыть объявление

Socket

Тема в разделе "PHP программирование", создана пользователем nws, 15 июл 2008.

Наш партнер Genesis Hackspace
  1. nws

    nws Гость

    Добрый день!
    Есть форма в ней 2 поля: username/password
    Мне необходимо пройти авторизацию с другого сервера
    Вот функция:

    Код (Text):
    function bot($server, $port, $path, $second)

    {


    $write = '';

    $fp = fsockopen($server, $port, $errno, $errstr, $second);

    if ($fp)

    {

    $write .= 'POST $path HTTP/1.0\r\n';

    $write .= 'Host: $server\r\n\r\n';
    $write .= 'username = vasea';
    $write .= 'password =123456';



    fwrite($fp, $write);

    fclose($fp);

    }else{
    echo 'BORODA'; 
    }

    }
    Почему это:
    Код (Text):
    $write .= 'username = vasea';
    $write .= 'password =123456';
    не передается в форму?
     
  2. nws

    nws Гость

    Код (Text):
    function bot($server, $port, $path, $second)

    {


    $write = '';
    $read = '';

    $fp = fsockopen($server, $port, $errno, $errstr, $second);

    if ($fp)

    {
    $params = "username=".urlencode("vasea")."&password=".urlencode("123456")."\r\n\r\n";
    $size = strlen($params);

    $write .= "POST $path HTTP/1.0\r\n";

    $write .= "Host: $server\r\n";
    $write .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $write .= "Cookie: lang=russian;\r\n";
    $write .= "User-Agent: Vasea\r\n";
    $write .= "Content-Length: $size\r\n";
    $write .= "Connection: Close\r\n\r\n";
    $write .= $params;

    echo '<pre>';
    echo $write;


    fwrite($fp, $write);

    while (!feof($fp)) {
    $read .= fgets($fp, 8192);
    }


    for ($i = 5; $i < strlen($read); $i++)

    {

    if (substr($read, $i - 3, 4) == "\r\n\r\n")

    {

    $read = substr($read, $i + 1);

    $i = strlen($read);

    }

    }

    fclose($fp);

    }

    else

    {

    $read = "";

    }



    return $read;


    }
     
  3. lazutov

    lazutov Гость

    1) параmетры должны передаватся в заголовке POST

    Код (Text):
    <?
    $host="host.ru";
    $addr="/index.php"; //форма
    $useragent="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:3.0.0.1)";
    $login="";
    $password="";
    $data="UserName=$login&PassWord=$password";
    $request=
    "POST $addr HTTP/1.1\r\n".
    "Accept: */*\r\n".
    "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n".
    "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n".
    "Accept-Encoding: gzip,deflate\r\n".
    "User-Agent: $useragent\r\n".
    "Host: $host\r\n".
    "Content-Type: application/x-www-form-urlencoded\r\n".
    "Content-Length: ".strlen($data)."\r\n".
    "Connection: Close\r\n\r\n$data";

    // послать и получить ответ ,полагаю, сами сможете.
    ?>

    Вариант 2 , что красивее и удобнее

    Код (Text):
    $url = "http://www.site.ru/form.php";
    $login = '';
    $password = '';
    $ch = curl_init(); // открыли курл
    curl_setopt($ch, CURLOPT_URL,$url); // куда посылаем
    curl_setopt($ch, CURLOPT_HEADER, 0); // нам НЕ нужны заголовки
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // резалт помащать в переменную, а не выводить
    curl_setopt($ch, CURLOPT_TIMEOUT, 3); // макс время одидания
    curl_setopt($ch, CURLOPT_POST, 1); // POST будет использоваться
    curl_setopt($ch, CURLOPT_POSTFIELDS, "UserName=$login&PassWord=$password1"); // сами значения
    $result = curl_exec($ch); // запустим запрос
    curl_close($ch); // закрыли курл
    //страница загружена в $result
     
Загрузка...
Похожие Темы - Socket
  1. GrabbeR
    Ответов:
    1
    Просмотров:
    1.355
  2. Helplamer
    Ответов:
    1
    Просмотров:
    1.186
  3. NickProstoNick
    Ответов:
    2
    Просмотров:
    1.633
  4. Radion2

    Websocket ?

    Radion2, 23 фев 2013, в разделе: Java
    Ответов:
    0
    Просмотров:
    1.411
  5. Marchelo2012
    Ответов:
    1
    Просмотров:
    2.952

Поделиться этой страницей