За последние 24 часа нас посетили 19153 программиста и 1644 робота. Сейчас ищут 905 программистов ...

Возможно ли это?

Тема в разделе "PHP для новичков", создана пользователем restauto, 29 апр 2009.

  1. restauto

    restauto Активный пользователь

    С нами с:
    21 апр 2009
    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте!
    Вопрос следующий: Есть сайт (работает на ASP.NET) мне необходимо авторизоваться на нем методом POST и получить определенную инфу. Мне товарищ сказал что это в принципе не возможно!!! О_о Пишу на PHP. Отправляю POST методом __VIEWSTATE, login и pass... но вылетает ошибка, такая же как при ошибочном __VIEWSTATE. Какие у вас есть мнения на этот счет?
     
  2. Roker

    Roker Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    54
    Симпатии:
    0
    что это еще за __VIEWSTATE????

    Та пофиг на чем работает движок сайта. Хоть на асеблере.
    Если ты зашлеш на сокет все тоже самое что и браузер, то и ответить он тебе тоже самое что и браузеру

    А товариш походу не шарит
     
  3. restauto

    restauto Активный пользователь

    С нами с:
    21 апр 2009
    Сообщения:
    5
    Симпатии:
    0
    В том то и дело... Что отправляю POST запрос и вылетает ошибка... такая же ошибка когда __VIEWSTATE не правильный хотябы на один символ... __VIEWSTATE это скрытое text поле...
     
  4. Cron

    Cron Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    289
    Симпатии:
    0
    Адрес:
    Украина, Сумы
    установите что-нибудь для просмотра отправляемых запросов браузером. например, firebug и отправьте из скрипта копию тех данных, которые посылает браузер.
     
  5. restauto

    restauto Активный пользователь

    С нами с:
    21 апр 2009
    Сообщения:
    5
    Симпатии:
    0
    Поставил... посмотрел...
    Посмотрите мой код... мож я че не так делаю...

    //БЕРУ viewstate и идентификатор сесии c формы входа
    $socket=fsockopen('online.autodoc.ru',80,$errno,$errstr,60);
    $query = "GET http://online.autodoc.ru/Web/Pages/LoginForm.aspx HTTP/1.0\r\n\r\n";
    fwrite($socket,$query);
    $s="";
    $viewstate="";
    while(!feof($socket)) {$s.=fgets($socket);}
    $viewstate=stristr($s,"name=\"__VIEWSTATE\" value=\"");
    $viewstate=substr($viewstate,26);
    $viewstate=substr($viewstate,0,strpos($viewstate,"\""));
    $session=stristr($s,"ASP.NET_SessionId=");
    $session=substr($session,18);
    $session=substr($session,0,strpos($session,";"));

    //ФОРМИРУЮ POST запрос и отправляю...
    $post="__VIEWSTATE=".$viewstate."&loginControl:txtLogin=&loginControl:txtPassword=";
    $query="POST http://online.autodoc.ru/Web/Pages/LoginForm.aspx HTTP/1.1\r\n".

    //это показал FireBug
    "Host: online.autodoc.ru\r\n".
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.20) Gecko/20081217 Firefox/2.0.0.20\r\n".
    "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n".
    "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n".
    "Accept-Encoding: gzip,deflate\r\n".
    "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n".
    "Connection:keep-alive\r\n".
    "Keep-Alive: 300\r\n".
    "Referer: http://online.autodoc.ru/Web/Pages/LoginForm.aspx\r\n".
    "Cookie: _utmb=36050302; __utma=36050302.100615967.1241017538.1241020476.1241020825.6;
    __utmz=36050302.1241017538.1.1.utmccn=(referral)|utmcsr=autodoc.ru|utmcct=/|utmcmd=referral;
    ASP.NET_SessionId=".$session."; __utmc=36050302; CookieAutodocUserLogin=demo; CookieAutodocUserPassword=demo\r\n".
    //это показал FireBug
    "Content-Type: application/x-www-form-urlencoded\r\n".
    "Content-Length: ".strlen($post)."\r\n\r\n".
    $post."\r\n\r\n";

    $socket=fsockopen('online.autodoc.ru',80,$errno,$errstr,60);
    fwrite($socket,$query);
    $z="";
    while(!feof($socket)) {$z.=fgets($socket);}
    fclose($socket);
    echo $z;