За последние 24 часа нас посетили 19099 программистов и 1624 робота. Сейчас ищут 765 программистов ...

ПОМОГИТЕ!!! Авторизация...

Тема в разделе "Вопросы от блондинок", создана пользователем restauto, 25 апр 2009.

  1. restauto

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

    С нами с:
    21 апр 2009
    Сообщения:
    5
    Симпатии:
    0
    Есть сайт на который нужно войти под именем и паролем, есть форма входа на ней есть поле "__VIEWSTATE", если заходить как гость указывать пароль и имя не надо... дело в том что если просто создать одноименные поля и заполнить viewstate отправляя форму фходит нормально, но отправляя POST запрос - вылетает ошибка(такая же ошибка вылетает если viewstate ошибочен хотябы на 1 символ) вот мой код
    PHP:
    1.  
    2. //БЕРУ viewstate c формы входа
    3. $socket=fsockopen('online.autodoc.ru',80,$errno,$errstr,60);
    4. $query = "GET [url=http://online.autodoc.ru/Web/Pages/LoginForm.aspx]http://online.autodoc.ru/Web/Pages/LoginForm.aspx[/url] HTTP/1.0\r\n\r\n";
    5.        //print "fsocketopen";
    6.        fwrite($socket,$query);
    7. $s="";
    8. $viewstate="";
    9. while(!feof($socket)) {$s.=fgets($socket);}
    10. $viewstate=stristr($s,"name=\"__VIEWSTATE\" value=\"");
    11. $viewstate=substr($viewstate,26);
    12. $viewstate=substr($viewstate,0,strpos($viewstate,"\""));                              
    13. print $viewstate;
    14.  
    15. //ФОРМИРУЮ POST запрос и отправляю...      
    16. $post="__VIEWSTATE=".$viewstate."&loginControl:txtLogin=&loginControl:txtPassword=";
    17. $query="POST [url=http://online.autodoc.ru/Web/Pages/LoginForm.aspx]http://online.autodoc.ru/Web/Pages/LoginForm.aspx[/url] HTTP/1.0\r\n".
    18. "Referer: [url=http://online.autodoc.ru/Web/Pages/LoginForm.aspx]http://online.autodoc.ru/Web/Pages/LoginForm.aspx[/url] \r\n".
    19. "User-Agent: Opera/8.50 (Windows NT 5.1; U; ru)\r\n".
    20. "Host: online.autodoc.ru\r\n".
    21. "Content-Type: application/x-www-form-urlencoded\r\n".
    22. "Content-Length: ".strlen($post)."\r\n\r\n".
    23. $post."\r\n\r\n";
    24.  
    25. print $query;
    26.        $socket=fsockopen('online.autodoc.ru',80,$errno,$errstr,60);
    27.        //print "fsocketopen";
    28.        fwrite($socket,$query);
    29.        //print "fwrite";
    30. $z="";
    31. while(!feof($socket)) {$z.=fgets($socket);}
    32. fclose($socket);
    33. echo $z;
    34.  
    viewsnane имеет вид: dDwtMjAxOTY4OTk5Nzt0PDtsPGk8MT47aTwzPjtpPDQ+Oz47bDx0PDtsPGk8MT47PjtsPHQ8O2w8aTwwPjs+O2w8dDw7bDxpPDA+Oz47bDx0PHA8bDxpbm5lcmh0bWw
    ...
    ...
    3B5cmlnaHQgJmNvcHlcOyAyMDA2LTIwMDkg0JDQstGC0L7QtNC+0LouINCS0YHQtSDQv9GA0LDQstCwINC30LDRidC40YnQtdC90YsuOz4+Oz47Oz47Pj47Pj47bDxsb2dpbkNvbnRyb2w6Y2hiU2F2ZUNvb2tpZTs+Puuc59WPUPunEOIUy+FfotNo1c5K

    Может что-то с "+" не то... не знаю никак не получается авторизоваться