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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2011, 23:05   #1
ananasios2010
 
Регистрация: 12.06.2011
Сообщений: 9
Печаль Проблема с постом через delphi

Доброго времени суток, уважаемые пользователи. Я в делфи как бы сказать новенький, но уже что то пытаюсь что то разбираюсь, возникла такая задача передо мной:
1. Авторизируемся на форуме, и допустив какой нибудь теме(своей) отвечаем.

Авторизацию сделал следующим образом:
Цитата:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
silka,fff: string;
data,mes: tstringlist;
begin
silka:=('http://www.sibnet.ru/profile.php');
data:=tstringlist.Create;
data.Add('use=login');
data.Add('login='+edit1.Text);
data.Add('password='+edit2.Text);
data.Add('x=15');
data.Add('y=13');
fff:=idhttp1.Post(silka, data);
if pos('logout', fff)<>0 then
showmessage('Успешная авторизация!');
else
showmessage('Авторизация не удалась!')
end;
далее мне требуется перейти в свою тему и нажать кнопку ответ,
Цитата:
Код:
if pos('logout', fff)<>0 then
showmessage('Успешная авторизация!');
silka:=('http://forum.sibnet.ru/index.php?act=post&do=reply_post&f=46&t=580222');
как мне сделать чтобы сообщение допустим из какого нибудь memo1.text запостить под своим логином в данной теме... Заранее спс за помощь.
ananasios2010 вне форума Ответить с цитированием
Старый 12.06.2011, 23:15   #2
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

сниффером проверте что куда отрпавляетса когда вы создаете пост на сайте и сделайте тоже самое в своей программе
Pein95 вне форума Ответить с цитированием
Старый 12.06.2011, 23:21   #3
ananasios2010
 
Регистрация: 12.06.2011
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Pein95 Посмотреть сообщение
сниффером проверте что куда отрпавляетса когда вы создаете пост на сайте и сделайте тоже самое в своей программе
пробывал сниффером, все делал что снифалось, естественно message забивал другое, но почему то пост на форуме не появлялся, возможно потому что терялась авторизация....
ananasios2010 вне форума Ответить с цитированием
Старый 14.06.2011, 11:57   #4
Den7656
Форумчанин
 
Аватар для Den7656
 
Регистрация: 08.06.2011
Сообщений: 103
По умолчанию

Ты прикрутил TIDCoockiemanager ?
Посмотри в сниффере, может там отправляестся GZIP.
Если че, прикрути его к инди тоже.
Жизнь хорошая штука -и⊥ʎdʞ ин ʞɐʞ
Den7656 вне форума Ответить с цитированием
Старый 16.06.2011, 21:37   #5
ananasios2010
 
Регистрация: 12.06.2011
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Den7656 Посмотреть сообщение
Ты прикрутил TIDCoockiemanager ?
Посмотри в сниффере, может там отправляестся GZIP.
Если че, прикрути его к инди тоже.
куки я не прикручивал, можно по конкретнее как прикрутить куки ?
ananasios2010 вне форума Ответить с цитированием
Старый 17.06.2011, 02:03   #6
ananasios2010
 
Регистрация: 12.06.2011
Сообщений: 9
По умолчанию

люди добрые объясните как авторизоваться на живом примере
Код:
http://forum.myttk.ru/
уже всю голову сломал, не хочет и все (((((
ananasios2010 вне форума Ответить с цитированием
Старый 19.06.2011, 15:50   #7
)Игнат(
Форумчанин
 
Регистрация: 06.01.2008
Сообщений: 180
По умолчанию прикручивать куки

Прикручиваются они так:
Кидаешь на форму TidCookieManager с вкладки Indy Misc
idHTTP1.CookieManager:=idCookieMana ger1;
idHTTP1.AllowCookies:=true;
)Игнат( вне форума Ответить с цитированием
Старый 23.08.2011, 18:24   #8
ananasios2010
 
Регистрация: 12.06.2011
Сообщений: 9
По умолчанию

дабы не засорять форум решил задать вопрос в этой же теме.
Вопрос состоит в следующем, нужно залогиниться на форум после чего оставить сообщение в определенной теме.
Проблема: не заполняются поля.

Логинюсь:
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var name, psswd, click, mess: Integer;
begin
if CheckBox1.Checked=true then
begin
WebBrowser1.Navigate('http://...........'); //Загружаем страницу в веб браузер

//Ожидаем полной загрузки страницы после чего логинимся
while WebBrowser1.ReadyState<>4 do
Application.ProcessMessages;

//Вводим имя
for name:=0 to WebBrowser1.OleObject.document.all. tags('input').length-1 do
begin
if WebBrowser1.OleObject.document.all. tags('input').item(name).Name='vb_l ogin_username' then
WebBrowser1.OleObject.document.all. tags('input').item(name).value:='св ой ник на форуме';
end;

//Вводим пароль
for psswd:=0 to WebBrowser1.OleObject.document.all. tags('input').length-1 do
begin
if WebBrowser1.OleObject.document.all. tags('input').item(psswd).Name='vb_ login_password' then
WebBrowser1.OleObject.document.all. tags('input').item(psswd).value:='с вой пароль на форуме';
end;

//Кликаем по кнопке вход
for click:=0 to WebBrowser1.OleObject.document.all. tags('input').length-1 do
begin
if WebBrowser1.OleObject.document.all. tags('input').item(click).value='Lo g in' then
WebBrowser1.OleObject.document.all. tags('input').item(click).click;
end;
все логиниться прекрасно, далее мне нужно перейти по ссылки для добавление поста в определенной теме...

Цитата:
webbrowser1.navigate(http://...................)
он у меня переходит и показывает что я не залогинен, мучался вроде испровил данную проблему вставкой:
Цитата:
sleep(100)
webbrowser1.navigate(http://...................)
sleep(100)
теперь ищем форму для сообщения:

Цитата:
for mess:=0 to WebBrowser1.OleObject.document.all. tags('textarea').length-1 do
begin
if WebBrowser1.OleObject.document.all. tags('textarea').item(mess).Name='m essage' then
WebBrowser1.OleObject.document.all. tags('input').item.value(mess):='ту т свое сообщение';
end;
форма не заполняется, перепробывал уже все(что умею), если вешаю допустим
Цитата:
for mess:=0 to WebBrowser1.OleObject.document.all. tags('textarea').length-1 do
begin
if WebBrowser1.OleObject.document.all. tags('textarea').item(mess).Name='m essage' then
WebBrowser1.OleObject.document.all. tags('input').item(mess).value:='ту т свое сообщение';
end;
на другую botton2 то после нажатия на вторую кнопку все отлично заполняется.

Люди добрые помогите пожалуйста как сделать чтобы залогинилось перешло заполнилось... заранее спасибо!

Последний раз редактировалось ananasios2010; 23.08.2011 в 18:27.
ananasios2010 вне форума Ответить с цитированием
Старый 23.08.2011, 19:00   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
далее мне нужно перейти по ссылки для добавление поста в определенной теме...
вы что сразу переходите?
а событие OnDocumentComplete для кого?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.08.2011, 20:08   #10
ananasios2010
 
Регистрация: 12.06.2011
Сообщений: 9
По умолчанию

проблема в том что мне нужно переходить несколько раз, а событие я могу применить всего один раз, или подскажите как применить данное событие несколько раз подряд. допустим залогинились, потом через событие перешли заполнились, потом опять должно сработать событие как это сделать ?
ananasios2010 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с загрузкой через браузер pavel42 Компьютерное железо 0 05.06.2010 23:13
Проблема с Update через AdoQuery kmvteam БД в Delphi 4 12.05.2010 11:26
CodeGear. Как сделать, что бы dproj по умолчанию открывалось через Delphi, а не через всю студию? TwiX Общие вопросы Delphi 2 10.11.2009 22:24
Проблема с отправкой текста через tclientsocket (delphi) v2.0 dyonysos Работа с сетью в Delphi 18 08.09.2009 23:20
Проблема с отправкой текста через tclientsocket (delphi) dyonysos Помощь студентам 1 30.08.2009 20:37