Хочу скриптом на ПХП подключиться к Ачату. При помощи утилиты для файрфокса смотрю заголовки. Прописываю их в своем скрипте.... в ответ "Bad request" (как то так, может ошибся в грамматике ). Пробую передать те же заголовки черзе файрфокс (есть там возможность с помощью той же утилитки) ответ тот же... Поясните что еще передается броузером, или как еще сервер определяет что запрос неверный? Такое имеенно с Ачатом.... подобные скрипты с другими сайтами нормально работают.... Если можно то хотелось бы кусочек кода, для подключения и допустим парсинга какого либо сообщения.
у меня работало 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); ?>
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); ?>
Хм.... все работает действительно.... Спасибо! Но я еще не все проверил, приду домой протестирую полнее, ведь что то не получалось.... Вооо, нашел.... если передаем пост запросом то выдает такую ошибку, проверял на добавлении репутации. Так что вопрос открыт. ????
Red_Red1 ну тогда уж как просил groundhog вылаживай весь запрос. ну и лучше дкмаю пост тестировать на поиске.
Так я не спамом занимаюсь=\ и поле от кого идет почта на хосте. и как теперь проверить дойдет ли письмо или нет? может есть какое нибудь решение
эт чёж получается, если предположим юзер регится у меня на сайте, указывает мыло yahoo, то ссылка с подтверждением аккаунта не придёт ему на мыло?=//
Вот заголовки. Тестил на поиске слова 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. Тот же результат если делаю скриптом с теми же заголовками.
Да ЕСТЬ эти переводы!!!!! Попробуй выполнить те же действия на файрфоксе - все будет видно. Блин.... что же это может быть... чем еще броузер делиться с сервером??? Т.е. можно ли написать скрипт который будет на Ачате искать темы по нужному слову и допустим парсить результат?
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; ?> нормальный ответ
Это НЕ нормальный ответ. При нормальном возвращается результат поиска. Этот ответ если перевести на русский гласит "запросов от иностранных хозяев не позволяется." Но даже это странно..... у меня 400 Bad Request. Ну еще вечером попробую скриптом ... и выложу код.
Red_Red1 нет это нормальный ответ в смысле не 400 Bad Request а 200 OK . просто я реферер не послал, там потом ссыль на страницу с результатом приходит
веб-сервер не склонен к расизму, просто он проверяет Referer у всех post запросов. когда собираешь заголовки, воткни где-нибудь PHP: $header.="Referer: http://forum.antichat.ru/\r\n";
маленький вопросик. Функция mysql_fetch_array() автоматически экранирует кавычки, полученные из БД? Просто, занёс я в базу некую форму: вывел ещё с помощью mysql_fetch_array() , но форма отобразилась криво....потом убрал экранирование и всё стало нормально, то есть кавычки автоматически заэкранировались О_о... Если так и есть то какие ещё функции автоматически экранируют кавычки и прочую дрянь при выводи из БД?
.:EnoT:., скорей всего ты знасош эту форму через phpmyadmin он сам всё как надо экранирует и в БД всё норм заносит, тоесть как ты вводиш, так он и заночит... Такчто для phpmyadmin ничё экранированть ненадо
Да, в данный момент заношу данные через phpMyAdmin. Но в последующем собираюсь делать это через скрипт...тогда как быть? что посоветуешь, использовать mysql_real_escape_string()?
.:EnoT:., смари... Написен мы хотим занести в БД такую строку <a href='1'></a> в MySQL это будет так INSERT INTO ... VALUES('<a href='1'></a>') видиш, путаница с ковычками ' поэтому надо экранировать INSERT INTO ... VALUES('<a href=\'1\'></a>') phpMyAdmin это экранирует и заносит, а если сам писать скрипт будеш, то да, надо экранировать Андырстэнд?