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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2010, 21:48   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию idhttp+регулярки

Если есть страница к примеру www.мойсайт.ru и на этой странице есть поле входа которое находится по ссылке www.мой-сайт.ru/вход, но вход имеет ссылку sinaps, как используя регулярные вырожения, про них я прочитал на вашем форуме тут http://programmersforum.ru/showthread.php?p=239716 войти на эту страницу, то есть я хочу что бы было так www.мой-сайт.ru+вход где вход обозначается переменной integr я на сколька понял, сам код входа выгледит так <a href="sinapsis.php" target="_self" rel="dropmenu2">Вход</a></li>
P.S. если сильно не понятно то напишите, а то башка уже кипит в сибири
bulldog5293 вне форума Ответить с цитированием
Старый 23.07.2010, 22:43   #2
ZaRDaK
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 197
По умолчанию

Скорее всего регулярные выражения Вам не понадобятся.
Нужно всего лишь отравить POST запрос на sinapsis.php
Чтобы понять какой запрос отправлять пользуйтесь снифферами (типа Charles).
И, да - всё-таки попробуйте описать проблему вменяемым языком.
ZaRDaK вне форума Ответить с цитированием
Старый 23.07.2010, 22:48   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Post это я понимаю, я спрашиваю из за того что в место sinapsis.php другое слово может стоять, если там другое слово, а следом стоит вход, то я при регулярке получаю слово которое стоит перед словом вход, но как поставить его к url сайта не знаю
bulldog5293 вне форума Ответить с цитированием
Старый 24.07.2010, 11:45   #4
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Раз молчите, то объясню по другому, мне это нужно что бы понять (точнее что бы поняла программа) с какой страницы идёт авторизация. А точнее, захожу к примеру на сайт www.мойсайт.ru и с него нада перейти на страницу www.мойсайт.ru/sinapsis.php, для авторизации, хотя в место /sinapsis.php может стоять другой урл, но вход на неё отображён будет, или авторизация может происходить прям на сайте www.мойсайт.ru, ну тут уже легче тем что можно просто отпрасить, так вот, как к при примеру при <a href="sinapsis.php" target="_self" rel="dropmenu2">Вход</a></li> определить что войти нада по sinapsis.php или другому урлу, а точнее, как в get или post запрос это добавить?
bulldog5293 вне форума Ответить с цитированием
Старый 24.07.2010, 18:27   #5
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

На сколько я понял, нужно получить ссылку для входа из HTML страницы?
Код:
uses StrUtils;

...

var
 s:string;
 i : integer;
begin
 s := '<a href="sinapsis.php" target="_self" rel="dropmenu2">Вход</a></li>';
 i := pos('href="',s);
 s := Copy(s,i+6,posex('"',s,i+6)-i-6);
 idhttp1.get('http://www.мойсайт.ru/'+s);
end;

Последний раз редактировалось kangreon; 24.07.2010 в 18:30.
kangreon вне форума Ответить с цитированием
Старый 24.07.2010, 21:45   #6
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Цитата:
хотя в место /sinapsis.php может стоять другой урл
нада найти урл, который ссылается на вход, это может быть не обязательно /sinapsis.php
bulldog5293 вне форума Ответить с цитированием
Старый 24.07.2010, 23:26   #7
ZaRDaK
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 197
По умолчанию

Ну самое очевидное решение:
В Memo1 текст странички
i , j : Integer;
S: String;
В конце концов в строке S будет находится кусок "<a href="sinapsis.php" target="_self" rel="dropmenu2">"
А там по аналогии можно найти и урл, который ссылается на вход.
Код:
for i := 0 to Memo1.Lines.Count - 1 do begin
 if Pos('Вход' , Memo1.Lines[i]) <> 0 then begin
  for j = 0 to Pos('Вход' , Memo1.Lines[i]) do
   if Memo1.Lines[i][j] = '<' then p := j;
   S := Copy(Memo1.Lines[i] , p , Pos('Вход' , Memo1.Lines[i]) - p);
 end;
end;
Код не проверял, писал с головы.

Последний раз редактировалось ZaRDaK; 24.07.2010 в 23:33.
ZaRDaK вне форума Ответить с цитированием
Старый 25.07.2010, 12:03   #8
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

а р тогда что?
bulldog5293 вне форума Ответить с цитированием
Старый 25.07.2010, 12:30   #9
ZaRDaK
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 197
По умолчанию

разберись в моём коде, а не копипасть его.
p := j;
j - integer, p соответственно тоже.
ZaRDaK вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
idHTTP foxes Работа с сетью в Delphi 6 03.05.2010 16:56
IdHTTP akimov_aleks Работа с сетью в Delphi 1 21.03.2010 03:18
IDHTTP Edward Компоненты Delphi 1 17.08.2009 20:20
idHTTP DeDoK Общие вопросы Delphi 5 05.06.2008 22:45