Здравствуйте! Вопрос следующий: Есть сайт (работает на ASP.NET) мне необходимо авторизоваться на нем методом POST и получить определенную инфу. Мне товарищ сказал что это в принципе не возможно!!! О_о Пишу на PHP. Отправляю POST методом __VIEWSTATE, login и pass... но вылетает ошибка, такая же как при ошибочном __VIEWSTATE. Какие у вас есть мнения на этот счет?
что это еще за __VIEWSTATE???? Та пофиг на чем работает движок сайта. Хоть на асеблере. Если ты зашлеш на сокет все тоже самое что и браузер, то и ответить он тебе тоже самое что и браузеру А товариш походу не шарит
В том то и дело... Что отправляю POST запрос и вылетает ошибка... такая же ошибка когда __VIEWSTATE не правильный хотябы на один символ... __VIEWSTATE это скрытое text поле...
установите что-нибудь для просмотра отправляемых запросов браузером. например, firebug и отправьте из скрипта копию тех данных, которые посылает браузер.
Поставил... посмотрел... Посмотрите мой код... мож я че не так делаю... //БЕРУ 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;