Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> приложение и web 
:(
    Опции темы
sniron
  Дата 24.2.2005, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 28.3.2004

Репутация: нет
Всего: нет



Как можно связать свое приложение с web? Допустим что бы приложение передавало какое – нибудь значение, например переменной в php скрипте. Спасибо.
PM MAIL ICQ   Вверх
Александра
Дата 25.2.2005, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.2.2005
Где: Москва

Репутация: 1
Всего: 12



sniron
ну например через POST запрос... а что конкретнее?
--------------------
PM   Вверх
Snowy
Дата 25.2.2005, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Код
otvet:=TIdHTTP.Get('http://www.site.ru/script.php?chtoto=znachenie');

PM MAIL   Вверх
sniron
Дата 25.2.2005, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 28.3.2004

Репутация: нет
Всего: нет



А какой тип переменной otvet? И какие значение она может принимать?
PM MAIL ICQ   Вверх
Alex
Дата 26.2.2005, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 4
Всего: 162



Snowy, Get насколько я знаю, это процедура, а не функция. smile


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Александра
Дата 26.2.2005, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.2.2005
Где: Москва

Репутация: 1
Всего: 12



Alex
все верно, есть как ф-ия, возврашает string, а есть и процедура, у которой вторым параметром должен быть наследник TStream'а куда возврашается результат запроса
--------------------
PM   Вверх
Alex
Дата 26.2.2005, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 4
Всего: 162



Александра точно. smile


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Snowy
Дата 27.2.2005, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(sniron @ 25.2.2005, 23:51)
А какой тип переменной otvet? И какие значение она может принимать?

Читай документацию по TIdHTTP.
В данном случае otvet - это string, в который будет засунута страница, которую вернет php скрипт.
Пример довольно абстрактный, поскольку сам TIdHTTP это класс, экземпляр которого тебе предстоит создать (или кинуть на форму).
PM MAIL   Вверх
sniron
Дата 27.2.2005, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 28.3.2004

Репутация: нет
Всего: нет



А где можно скачать нормальный хелп с примерами по TIdHTTP, кроме как из встроенной справки? Моя задача - внедрить в программу модуль регистрации в нете, что бы определенные данные передавались ПХП скрипту, ну а тот уже в БД заносил. smile
PM MAIL ICQ   Вверх
Snowy
Дата 27.2.2005, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Код

var
 www: TIdHTTP;
begin
 www:=TIdHTTP.Create(nil);
 try
   www.Get('http://www.site.ru/script.php?chtoto=znachenie');
 except end;
 www.Free;
end;

Добавлено @ 17:55
Но, если у пользователя прокси, то такой номер не пройдет.
Тут лучше сказать браузеру, чтобы он открыл твою страничку и передал данные.
Код

Const
 URL : String = 'http://www.site.ru/script.php?chtoto=znachenie';
begin
 ShellExecute(0,'open',pChar(URL),NIL,NIL,SW_SHOWNORMAL);

Правда в этом случае придется пользователю страничку показывать.
PM MAIL   Вверх
sniron
Дата 27.2.2005, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 28.3.2004

Репутация: нет
Всего: нет



Snowy, Да конечно 2 вариант примитивный но надежный. Ладно, огромное спасибо!
PM MAIL ICQ   Вверх
Александра
Дата 28.2.2005, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.2.2005
Где: Москва

Репутация: 1
Всего: 12



sniron

Snowy фигни не посоветует )) Просто можно немного улучшить идею!

можно взять компонент TWebBrowser, кинуть на форму, спрятать его, далее в реестре открыть
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings и считать параметр ProxyServer, где настроен прокси в IE. Далее заставим наш WebBrowser работать через этот прокси и делаем запрос по нужному адресу:

Код
uses urlmon, wininet;

var PIInfo: PInternetProxyInfo;
begin
 new(PIInfo);
 PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY;
 PIInfo^.lpszProxy := PAnsiChar('прокси:порт');
 UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo, SizeOf(Internet_Proxy_Info), 0);
 
 WebBrowser1.Navigate('http://www.site.ru/script.php?chtoto=znachenie');

 dispose(PIInfo);
end;


есть конечно другие недостатки, но все же...

Это сообщение отредактировал(а) Александра - 28.2.2005, 12:19
--------------------
PM   Вверх
Snowy
Дата 28.2.2005, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



А зачем TWebBrowser? Это тот же IE. С тем же успехом можно взять эти параметры и отдать их IIdSMTP. В большинстве случаев это даже сработает.
Но!
Например я сижу за прокси, о котором IE даже не подозревает. А эти строчки набиваю в Opere, которая браузер по умолчанию.
Поэтому я и предложил "второй вариант". Ибо он гораздо надежней.
Но мой случай редкий.
В 80% достаточно просто запроса через IdHTTP. В 95% - если дополнительно взять инфу о прокси из реестра и дать IdHTTP. 99.9%, если использовать второй вариант.
Вопрос в том, хотим ли мы, чтобы пользователь знал о том, что мы передаем инфу в инет или нет. Ибо все равно еще есть прокси, пароли... Поэтому проще делать это в открытую.
PM MAIL   Вверх
Александра
Дата 28.2.2005, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.2.2005
Где: Москва

Репутация: 1
Всего: 12



Snowy
под недостатками я и имела ввиду что-нить типа настроек прокси в Опере ))

а вот про натравление idHTTP на прокси не знала smile Опыт работы с Indy очень мал. )) Но если делать просто по 2 варианту, то нельзя послать к примеру POST запросы и, самое похое, GET запросы сохряняются в истории и пользователь на них потом бывает натыкается (( Пройденный этап.
--------------------
PM   Вверх
Snowy
Дата 28.2.2005, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



У IdHTTP есть свойство ProxyParams. Вот туда можно запихать сервер и порт, которые живут в реестре... Но для прокси обычно требуются еще имя и пароль, которые нам никто не докладывал... Так что знание прокси обычно не сильно помогает. Разве что спросить имя и пароль у пользователя smile Я бы такой программе не сказал бы. Мало ли зачем ей... ;)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.