Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2010, 01:16   #1
shanluu
Пользователь
 
Аватар для shanluu
 
Регистрация: 05.10.2010
Сообщений: 53
По умолчанию отправка комментария WP

Привет.
поиск я смотрел, полного ответат не нашел, или ктото сам додумался и не написал, или просто нету ответов.
Пытаюсь сделать отпраку комента на блоге

но столкнулся с 2мя проблемами

1я -

есть код

PHP код:
procedure TForm4.Button3Click(SenderTObject);
var 
i:integer;
begin
for := 0 to WebBrowser1.OleObject.Document.all.tags('input').length do
   
begin

   
try
      if (
WebBrowser1.OleObject.Document.all.tags('input').item(i).name='author'then
      WebBrowser1
.OleObject.Document.all.tags('input').item(i).value:=''nick";
      if (WebBrowser1.OleObject.Document.all.tags('input').item(i).name='email') then
      WebBrowser1.OleObject.Document.all.tags('input').item(i).value:='mail@mail.com';
      if (WebBrowser1.OleObject.Document.all.tags('input').item(i).name='url') then
      WebBrowser1.OleObject.Document.all.tags('input').item(i).value:='www...com';
      if (WebBrowser1.OleObject.Document.all.tags('textarea').item(i).name='comment') then
      WebBrowser1.OleObject.Document.all.tags('textarea').item(i).value:='coment kotorii ne idet.';
       if (WebBrowser1.OleObject.Document.all.tags('input').item(i).name='submit') then
   WebBrowser1.OleObject.Document.all.tags('input').item(i).click;
   except
   end;
end; 
Этот код заполняет все поля ( ВСЕ ! ) но почемуто говнит на поле текстарии , хотя его тоже заполняет. на сайте нету такой переменной как
value.



2й проблема ( лучший вариант если поможете, ибо не надо грузить страницу )

ХТТП аналазер показал мне запрос к сайту в виде -

PHP код:
POST /wp-comments-post.php HTTP/1.1
Host
www.--------.com
Connection
keep-alive
Referer
http://www.-------------.com/seo-----s-ho---to-------images-------and-au---io-for-your------/
Content-Length91
Cache
-Controlmax-age=0
Origin
http://www.------------.com
Content-Typeapplication/x-www-form-urlencoded
Accept
application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3

(тут куки и тд)

author=hui&email=hi%40juio.com&url=&comment=huie&submit=Submit+Comment&comment_post_ID=1701 
Аналайзер показыает что запрос идет к www.-------------.com/wp-comments-post.php, но имхо как он узнает что мне нужно отправить это сообщение в нужную для меня тему , если в запросе нету ссылки на эту тему.


Но как я не пытался отправить запрос что к www.-------------.com/wp-comments-post.php (нету ошибок и нету сообщения), что тупо к урлу темы(ошибка 404, соответственно нету и сообщения)
shanluu вне форума Ответить с цитированием
Старый 27.11.2010, 07:43   #2
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
как он узнает что мне нужно отправить это сообщение в нужную для меня тему
Через пост запрос, а именно:
Код:
comment_post_ID=1701
1701 - это и есть id поста.

Да и WebBrowser совсем не для этих целей предназначен (я так полагаю что вам нужно всего лишь добавить комент и не выводить после этого ответный html в WebBrowser). Так что советую idhttp компонент.
zotox вне форума Ответить с цитированием
Старый 28.11.2010, 00:57   #3
shanluu
Пользователь
 
Аватар для shanluu
 
Регистрация: 05.10.2010
Сообщений: 53
По умолчанию

угу ты был прав по поводу пост_ид

Решил додуматься всеже как ты и сказал с idhttp , сначало не получалось ничего, но методом проб и ошибок сделал благодоря аналайзеру этому , там в окошке выводит что пишет со страницы из за которой ошибка.
сначало чето про формы писала , потом вообще все нормально было, но поста небыло.

решилось это все добовлением useragent'а в idhttp


рабочий код -

PHP код:
procedure TForm4.Button2Click(SenderTObject);
var
PostDataResponseData TStringList;
begin
idhttp1
.Request.UserAgent:='Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML, like Gecko) Ubuntu/10.10 Chrome/9.1.0.0 Safari/540.0';
PostData := TStringList.Create;
try
ResponseData := TStringList.Create;
PostData.Add('author=NICKNAME');
PostData.Add('email=mail@mail.mail');
//PostData.Add('url=');
PostData.Add('comment=PREVED');
PostData.Add('submit=Submit');
PostData.Add('comment_post_ID=901');
PostData.Add('comment_parent=0');
ResponseData.Text := IdHTTP1.Post('http://------------.com/wp-comments-post.php?'PostData);

finally

PostData.free;
ResponseData.free;
end;
end
shanluu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка ел. писем legendary Win Api 5 01.09.2010 15:44
Отправка аудио SanekIrk Работа с сетью в Delphi 2 31.07.2009 12:12
Помогите написать комментария к задаче. Pleas!!! Irin@ Помощь студентам 1 20.03.2009 00:00
Отправка SMS Altera Софт 1 20.11.2008 08:56