[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Red_Red1

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    Хочу скриптом на ПХП подключиться к Ачату. При помощи утилиты для файрфокса смотрю заголовки. Прописываю их в своем скрипте.... в ответ "Bad request" (как то так, может ошибся в грамматике :) ). Пробую передать те же заголовки черзе файрфокс (есть там возможность с помощью той же утилитки) ответ тот же... :(
    Поясните что еще передается броузером, или как еще сервер определяет что запрос неверный? Такое имеенно с Ачатом.... подобные скрипты с другими сайтами нормально работают....
    Если можно то хотелось бы кусочек кода, для подключения и допустим парсинга какого либо сообщения.
     
  2. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Покажи результирующий запрос, который отсылаешь... Тогда скажу в чём лажа...
     
  3. VampiRUS

    VampiRUS Elder - Старейшина

    Joined:
    31 Dec 2005
    Messages:
    210
    Likes Received:
    105
    Reputations:
    57
    у меня работало
    PHP:
    <?
    $header="GET /index.php HTTP/1.0\n";
    $header.="Host: forum.antichat.ru\n\n";
    $f=fsockopen('forum.antichat.ru',80);
    fwrite($f,$header);
    $buffer='';
    while(!
    feof($f))$buffer.=fread($f,1024);
    ?>
     
    1 person likes this.
  4. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    VampiRUS, у тебя не правильно. Вот верный вариант:

    PHP:
    <?
    $header="GET /index.php HTTP/1.0\r\n";
    $header.="Host: forum.antichat.ru\r\n\r\n";
    $f=fsockopen('forum.antichat.ru',80);
    fwrite($f,$header);
    $buffer='';
    while(!
    feof($f))$buffer.=fread($f,1024);
    ?>
     
  5. VampiRUS

    VampiRUS Elder - Старейшина

    Joined:
    31 Dec 2005
    Messages:
    210
    Likes Received:
    105
    Reputations:
    57
    groundhog,в данном случае разницы нету
    работало и на linux и на win
     
    1 person likes this.
  6. Red_Red1

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    Хм.... все работает действительно.... Спасибо! Но я еще не все проверил, приду домой протестирую полнее, ведь что то не получалось....


    Вооо, нашел.... если передаем пост запросом то выдает такую ошибку, проверял на добавлении репутации.
    Так что вопрос открыт. ???? :confused:
     
    #1206 Red_Red1, 14 Dec 2007
    Last edited: 14 Dec 2007
  7. VampiRUS

    VampiRUS Elder - Старейшина

    Joined:
    31 Dec 2005
    Messages:
    210
    Likes Received:
    105
    Reputations:
    57
    Red_Red1 ну тогда уж как просил groundhog вылаживай весь запрос.
    ну и лучше дкмаю пост тестировать на поиске.
     
  8. gibson

    gibson Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    391
    Likes Received:
    247
    Reputations:
    88
    Так я не спамом занимаюсь=\ и поле от кого идет почта на хосте.
    и как теперь проверить дойдет ли письмо или нет? может есть какое нибудь решение
     
  9. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    эт чёж получается, если предположим юзер регится у меня на сайте, указывает мыло yahoo, то ссылка с подтверждением аккаунта не придёт ему на мыло?=//
     
  10. Red_Red1

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    Вот заголовки. Тестил на поиске слова red
    Code:
    POST /search.php HTTP/1.1
    Host: forum.antichat.ru
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9
    Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    Accept-Language: ru,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: https://forum.antichat.ru/
    Cookie: abbuserid=xxxxx; abblastactivity=xxxxxxxxx; abblastvisit=xxxxxxxxxx; abbpassword=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; abbsessionhash=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 53
    s=&do=process&sortby=lastpost&forumchoice=0&query=red
    
    Куки немного подправил, сами понимаете ;). Делаю так. Запускаю файрфокс в нем утилиту Live HTTP headers. Ищу слово, все Ок, находит. смотрю заголовки, нажимаю Replay и передаю ЭТИ ЖЕ заголовки уже через утилитку. В ответ 400 Bad Request.
    Тот же результат если делаю скриптом с теми же заголовками.
     
  11. VampiRUS

    VampiRUS Elder - Старейшина

    Joined:
    31 Dec 2005
    Messages:
    210
    Likes Received:
    105
    Reputations:
    57
    Red_Red1
    после Content-Length: 53 должо быть 2 перевода строки
     
  12. Red_Red1

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    Да ЕСТЬ эти переводы!!!!! Попробуй выполнить те же действия на файрфоксе - все будет видно. Блин.... что же это может быть... чем еще броузер делиться с сервером???
    Т.е. можно ли написать скрипт который будет на Ачате искать темы по нужному слову и допустим парсить результат?
     
  13. VampiRUS

    VampiRUS Elder - Старейшина

    Joined:
    31 Dec 2005
    Messages:
    210
    Likes Received:
    105
    Reputations:
    57
    PHP:
    <?
    $header="POST /search.php HTTP/1.0\r\n";
    $header.="Host: forum.antichat.ru\r\n";
    $header.="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9\r\n";
    $header.="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";
    $header.="Accept-Language: ru,en;q=0.5\r\n";
    $header.="Accept-Encoding: gzip,deflate\r\n";
    $header.="Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
    $header.="Content-Type: application/x-www-form-urlencoded\r\n";
    $header.="Content-Length: 53\r\n\r\n";
    $header.="s=&do=process&sortby=lastpost&forumchoice=0&query=red\r\n\r\n";
    $f=fsockopen('forum.antichat.ru',80);
    fwrite($f,$header);
    $buffer='';
    while(!
    feof($f))$buffer.=fread($f,1024);
    echo 
    $buffer;
    ?>
    нормальный ответ
     
  14. Red_Red1

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    Это НЕ нормальный ответ. При нормальном возвращается результат поиска. Этот ответ если перевести на русский гласит "запросов от иностранных хозяев не позволяется." Но даже это странно..... у меня 400 Bad Request. Ну еще вечером попробую скриптом ... и выложу код.
     
  15. VampiRUS

    VampiRUS Elder - Старейшина

    Joined:
    31 Dec 2005
    Messages:
    210
    Likes Received:
    105
    Reputations:
    57
    Red_Red1
    нет это нормальный ответ в смысле не 400 Bad Request
    а 200 OK ;).
    просто я реферер не послал, там потом ссыль на страницу с результатом приходит
     
  16. V1k

    V1k Elder - Старейшина

    Joined:
    1 Feb 2007
    Messages:
    38
    Likes Received:
    32
    Reputations:
    13
    веб-сервер не склонен к расизму, просто он проверяет Referer у всех post запросов. когда собираешь заголовки, воткни где-нибудь
    PHP:
    $header.="Referer: http://forum.antichat.ru/\r\n";
     
    1 person likes this.
  17. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    маленький вопросик.

    Функция mysql_fetch_array() автоматически экранирует кавычки, полученные из БД?
    Просто, занёс я в базу некую форму:
    вывел ещё с помощью mysql_fetch_array()
    , но форма отобразилась криво....потом убрал экранирование и всё стало нормально, то есть кавычки автоматически заэкранировались О_о...

    Если так и есть то какие ещё функции автоматически экранируют кавычки и прочую дрянь при выводи из БД?
     
  18. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    .:EnoT:., скорей всего ты знасош эту форму через phpmyadmin он сам всё как надо экранирует и в БД всё норм заносит, тоесть как ты вводиш, так он и заночит... Такчто для phpmyadmin ничё экранированть ненадо
     
    1 person likes this.
  19. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Да, в данный момент заношу данные через phpMyAdmin.
    Но в последующем собираюсь делать это через скрипт...тогда как быть? что посоветуешь, использовать mysql_real_escape_string()? :)
     
  20. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    .:EnoT:., смари... Написен мы хотим занести в БД такую строку <a href='1'></a> в MySQL это будет так INSERT INTO ... VALUES('<a href='1'></a>') видиш, путаница с ковычками ' поэтому надо экранировать INSERT INTO ... VALUES('<a href=\'1\'></a>') phpMyAdmin это экранирует и заносит, а если сам писать скрипт будеш, то да, надо экранировать
    Андырстэнд? :)
     
    1 person likes this.
Thread Status:
Not open for further replies.