За последние 24 часа нас посетили 14982 программиста и 1767 роботов. Сейчас ищут 1533 программиста ...

опять сокеты

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

  1. SHUra

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

    С нами с:
    29 янв 2009
    Сообщения:
    28
    Симпатии:
    0
    вот возник у меня вопрос как сделать так чтобы мы могли двигаться по страницам сайта при помощи только сокетов
    как посылать сразу несколько запросов
    вот взял к примеру контакт
    первое что нада сделать это авторизоваться
    начинаем это делать (посмотрел как это делает Експлорер и написал также)
    PHP:
    1.  
    2. <?php
    3. $fp = fsockopen('vkontakte.ru', 80); //Подсоединяемся с хосту "localhost" на 80-й порт
    4. if($fp)
    5. {
    6. $out= "POST /login.php HTTP/1.1\r\n";
    7. $out .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, application/x-gsarcade-launch, */* \r\n";
    8. $out .= "Referer: [url=http://vkontakte.ru/index.php]http://vkontakte.ru/index.php[/url]\r\n";
    9. $out .= "Accept-Language: be  \r\n";
    10. $out .= "Content-Type: application/x-www-form-urlencoded \r\n";
    11. $out .= "Accept-Encoding: gzip, deflate \r\n";
    12. $out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) \r\n";
    13. $out .= "Host: vkontakte.ru \r\n";
    14. $out .= "Content-Length: 41 \r\n";
    15. $out .= "Connection: Keep-Alive  \r\n";
    16. $out .= "Cache-Control: no-cache  \r\n";
    17. $out .= "Cookie: remixlang=3; remixchk=5; remixmid=10511857; remixemail=maxsim_%40tut.by; remixpass=670b14728ad9902aecba32e22fa4f6bd; remixsid=14693e51e95b5466608c057e926fa3a25f06fd67c494377231e34d21  \r\n";
    18. $out .= "\r\n\\r\n";
    19. $out .= "email=log@tut.by&pass=000000  \r\n";
    20.  $end = false;
    21.  
    22. /*тут писал вот так проверял
    23.   fwrite($fp, $out);
    24.  
    25.    while (!$end)
    26. {
    27. $line = fgets($fp,128);
    28.  
    29. if (trim($line)== "")
    30. $end=true;
    31. else
    32. $vse[]= $line;
    33. }
    34. print_r($vse);*/
    35. fclose ($fp);
    36.  
    37.  
    38. print_r($vse);
    39.  
    все замечательно правда ответ вышел не такой как в експлорере но всеровно первая строчка нам говорит что все ок!)
    не стал останавливаться на достигнутом
    захотелось мне пойти на страницу к другу продолжаю писать
    PHP:
    1.  
    2. $out= "GET /profile.php?id=10512039 HTTP/1.1
    3. \r\n";
    4. $out .= "Referer: [url=http://vkontakte.ru/id10511857]http://vkontakte.ru/id10511857[/url]\r\n";
    5. $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
    6. $out .= "Accept-Encoding: gzip, deflate\r\n";
    7. $out .= "Host: vkontakte.ru\r\n";
    8. $out .= "Connection: Keep-Alive\r\n";
    9. $out .= "Cookie: remixlang=888; remixchk=5; remixmid=10511857; remixemail=maxsim_%40tut.by; remixpass=670b14728ad9902aecba32e22fa4f6bd; remixsid=b14c8f87b897349677903e34fd33e0a0f3e144bfe5273604a967ecf6\r\n";
    10.  
    ну и вот написала мне ошибку что неверный запрос...
    расскажите плиз как тут что
    или темы которые стоило прочитать или статьи
    бо ничего не нашел
     
  2. _alex

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

    С нами с:
    29 янв 2007
    Сообщения:
    43
    Симпатии:
    0
    Ха, фсем очень хоцца хакнуть фКонтакте.сру

    весЕло

    бан тебе на вечно!
     
  3. SHUra

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

    С нами с:
    29 янв 2009
    Сообщения:
    28
    Симпатии:
    0
    я хочу путешествовать по страницам без браузера
    я взял вконтакте как самый простой пример
    можно взять практически любой сайт
    я хочу плавно переходить от одной странице к другой....
     
  4. _alex

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

    С нами с:
    29 янв 2007
    Сообщения:
    43
    Симпатии:
    0
    это уже интересно.
    не столько интересна цель, сколько плавность перехода :mrgreen:
     
  5. SHUra

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

    С нами с:
    29 янв 2009
    Сообщения:
    28
    Симпатии:
    0
    _alex
    те по существу же нечего сказать ...ну признайся ты не знаешь как этого добиться...
    вот я и жду тех кто сможет мне подсказать
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.557
    Симпатии:
    631
    1)
    Не замечаешь лишнего слеша?
    2)
    Запрос должен заканчиваться на два переноса строки ('\r\n\r\n') (хотя на счет пакета POST я не уверен, проверь).
     
  7. Roker

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

    С нами с:
    10 апр 2007
    Сообщения:
    54
    Симпатии:
    0
    PHP:
    1. <?php
    2. //сначала сделай строку запроса
    3. $post = "email=log@tut.by&pass=000000";
    4.  
    5. //узнай ее длинну
    6. $strlen = strlen($post);
    7.  
    8. //а теперь простейший пакет
    9. $out= "POST /login.php HTTP/1.1\r\n";
    10. $out .= "Host: vkontakte.ru\r\n";
    11. $out .= "Content-Length: $strlen\r\n";
    12. $out .= "Connection: Close\r\n";//лутше закрыть(проще читать будет)
    13. $out .= "\r\n"; //одна строка а не 2 как у тебя
    14. $out .= "$post\r\n";
    15. ?>
     
  8. alexeurodnepr

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

    С нами с:
    18 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    ты кто? он или она :lol: