 |  | |  | |
Простые CGI приложения на Дельфи. | Полный текст материала
Цитата или краткий комментарий: «... Все что я буду писать далее, относится к платформе Win и http серверу IIS, хотя в общих чертах справедливо и для других платформ и серверов.
Cgi приложение это программа, выполняемая под управлением операционной системы. В нашем случае это будет просто скомпилированный исполнимый (exe) файл. Причем консольного (не GUI, т.е. без графической оболочки) типа. Взаимодействие с http сервером осуществляется при помощи стандртного ввода/вывода и переменных окружения, устанавливаемых для этого приложения. В принципе этого почти достаточно для понимания работы cgi :-). ...» |
Важно:- Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
- Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
- При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
- Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.
Добавить свое мнение.
| | Содержит полезные и(или) интересные сведения | [1] | 11 | 84.6% | | | | Ничего особенно нового и интересного | [2] | 1 | 7.7% | | | | Написано неверно (обязательно укажите почему) | [3] | 1 | 7.7% | | Всего проголосовали: 13 | | | Все понятно, материал читается легко | [1] | 10 | 100% | | | | Есть неясности в изложении | [2] | 0 | 0% | | | | Непонятно написано, трудно читается | [3] | 0 | 0% | | Всего проголосовали: 10 |
[Консольные приложения] [CGI]
Отслеживать это обсуждение 
Всего сообщений: 2922-08-2010 03:06Пока все понятно, вопросы возникнут, как всегда, когда я буду пытаться проделать все это у себя на компьютере :)
А так тема интересна. |
|
14-03-2006 15:29Все хорошо! Есть только одно НО! программа скомпелирована под Windows, а большенство web-серверов работают на linux. В интернете программа не работает! Нужно скомпилировать программу под linux. если знаете, то подскажите где найти хороший компилятор Delphi приложений на windows машине под linux. Я скачал Crosskylix но он оказался обрезанным и неработоспособным (может кто знает где достать полную версию или что-то похожее?).
с уважением Dmitriy |
|
05-01-2005 05:14Очень грамотно рассмотрены основные подходы для создания cgi-приложений под Windows. Некоторые вещи в исходниках можно было-бы написать и попроще, но в целях экономии размера файла/требуемых ресурсов все просто очень хорошо.
Огромная благодарность... главное ведь - создать представление, о чем идет речь и как это работает, а дальше само пойдет....
Салют программистам!!! :-) |
|
16-12-2003 17:39Конечно, с момента публикации прошло много времени. Но раньше я этим воросом не занимался. Поэтому и могу оценить статью только теперь. Мне, как новичку, очень понравились и содержание и примеры. Все работают и в Delphi 6. Только в пятом примере пришлось стоку 54 - CLen := StrToIntDef(GetEnvVar(CONTENT_LENGTH), 0); заключить между try и except end; |
|
23-02-2003 13:54U menia net nikakogo opita CGI, a i voopsche Web programirovanie, no dwa dnia tomu nazad ia install Abyss Web Server, prochital i probawal wse, stho u menia na knige napisano (D4, D5, Kantu, Aleksandrovskii, Pacheko, Bebak i t.p.), no vse mne stala iasno posle etoi statii.
Bolshoe spasibo, jelaiu avtoru udachi!
|
|
29-10-2002 13:03Статья отличная, спасибо, было положено начало изучению и внедрению CGI , но вот вопрос:
Возможно ли чтобы CGI приложение вернуло в страницу только одну строчку?
Что для этого нужно написать в html и как будет выглядеть код программы?Сообщение не подписано |
|
08-12-2000 02:17Уважаемый Vlad!
Что значит 'скрипт не пашет'? Тут вообще никакого скрипта нет :о).
И какой Netscape - Enterprise server или Netscape Navigator?
Кстати, простите за банальность, правильно заданный вопрос содержит половину ответа.
Ну и (оффтопик, но все-же) нельзя-же так коверкать русский язык! :о) |
|
08-12-2000 00:20Уважаемый Автор!
Вы били павы. У меня уже все работает. Но у меня есть есче один вопрос. В NETSCAPE скрипт не пашeт. Как зделать чтобы скрипт заработал и в NETSCATE? |
|
07-12-2000 20:00Уважаемый Автор!
Я попробую убить dcu и перестроить проект. Возможна у меня проблемы от того что у меня Дельфи 5.
Благодарю в любом случие. |
|
07-12-2000 19:39Уважаемый Vlad!
Вы не задали вопроса :-) Точнее вопрос относиться не к программированию CGI а к конфигурации среды (Дельфи) и целостности библиотек. Такое (конфликт версий) иногда случается при установке сторонних компонент (например я такое встречал при установке RxLib)
Кроме того надо иметь в виду, что в разных версиях Дельфи некоторые функции (особенно из WinAPI) имеют чуть различающийся интерфейс (например pointer и var переменная). Восстановить базовые библиотеки можно из каталога SLib (если есть) или из исходников (Sources). Кроме того мои исходники на Дельфи2, поэтому стоит убить dcu и перестроить проект. Удачи. |
|
06-12-2000 23:49Уважаемый Автор!
Вы не ответили на мой вопрос...... |
|
06-12-2000 13:06А у меня электричество вырубилось и компьютер не грузится.
А виноват.... ну конечно Билл Гейтс! |
|
02-12-2000 23:31....... точнее Дельфи Видает Конфликт в Функций GetenvironmentVariable а имено тут:
z := GetEnvironmentVariable(@Name[1], @Result[1], z); // нормальный вызов
Что делать?
|
|
02-12-2000 19:11Уважаемый Автор!
Мне тагже не удалось воспроизвести 4 И 5 примеры, Дельфи Видает Конфликт Функций GetenvironmentStrings. Что делать? у меня тагже компилиться отказываются (Конфликт версий). Что делать?
С уважением, Vlad. |
|
18-11-2000 23:14Благодарю, милорд. Нашел, и тем весьма обязан.
Замечу еще, что даже элементарный счетчик - система массового обслуживания, где надо экономить каждый байт. Боюсь, что многие Дельфийцы стали забывать, что пишут-то они на Паскале, и его стиль надо помнить (без злоупотреблений)
За сим, остаюсь с почтением
Конрад, Хранитель Дома Сварога
|
|
13-11-2000 10:45Сэр Конрад!
Функция GetenvironmentStrings должна быть описана в модуле Windows.
Возможно Вы забыли его включить в uses.
|
|
12-11-2000 23:59Уважаемый Автор!
Мне не удалось воспроизвести второй пример, Дельфи не находит Функций GetenvironmentStrings. Как их подключить?
Что до враперов, они, наверно, штука хорошая, только вот компилиться у меня отказываются (Конфликт версий). Переставлят же все с нуля - не могу, нет диска (черти б драли 'легальную' математику)
С уважением, Конрад |
|
08-11-2000 05:56Тов. Andre, я вас умоляю! Пожалуйста, никогда не занимайтесь дурью!
Я Вас очень прошу, используйте всегда WebModule и его исходники!
Особенно когда нужно будет написать что-то для UNIX. И не слушайте
Andy, который совершенно верно говорит про Си или Перл. Но даже
когда припрет написать на Си или Перл даже для Win32, не занимайтесь
никакой дурью типа переменных окружения, стандартных потоков
ввода-вывода и регулярными выражениями...
WebModule нас всех всегда спасет! Ура! |
|
03-11-2000 12:36Делфи - отличный инструмент для написания оконных приложений. Действительно RAD средство. Но писать на делфях cgi-шные весчи имхо не правильно. Для этих целей лучше использовать тот же perl или си... По крайней мере это все будет переносимо... Сегодня на виндозе, завтра на юникс переставили... |
|
02-11-2000 02:08Полная формулировка звучит так:
Изучать исходники TWebModule и писать с помощью него cgi много полезнее, чем заниматься дурью и писать cgi так, как показано в этой статье. |
|
01-11-2000 16:50'Много полезнее' чем что? :о)
Ведь в исходниках практически то же самое и есть, только довольно
неодназначно для 'новеньких'. |
|
19-10-2000 01:32Мне кажется, изучение исходников TWebModule и иже с ними много полезнее. |
|
18-10-2000 17:56А разве 'знать как оно работает' не очень важный аргумент?
Ведь никто не предлагает писать сложное приложение таким способом. Это _обучающий_ пример.
|
|
18-10-2000 17:53рапперы писали умные люди, которые хотели облегчить нам работу.
А изобретение велосипеда, это да - любимое занятие многих программистов с обилием свободного времени :)
Привидите мне плюсы такого подхода (кроме 'знать, как оно работает')?
Минусы - зря потраченное время и усложненный код.
Нет, блин, ну уж параметры самому парсить - это надо додуматься. |
|
17-10-2000 10:46Я согласна с Алексеем, прежде чем писать с помощью TWEBModule хорошо бы понять, что и как 'там происходит'. Именно поэтому такой вариант
'простого cgi-приложения' очень полезен для новичков.
Те, кто уже разобрались в технологии, конечнобудут использовать TWebModule.
Хотя... он не всегда так уж необходим :о) |
|
17-10-2000 10:42Вот еслиб вся документация и книги по софтописанию были так
кратко, точно, понятно и полно (для данного примера)
написанны - цены б печатной продукции небыло ! Как в старые
добрые времена - Автору 5 с + :)))
|
|
17-10-2000 01:39Да Andre, а те самые врапперы писали Вами упомянутые мазохисты.
Есть еще особая группа извращенцев, которая пишет скрипты на Perl-е.
Ещё имеется некоторый процент не ходивших к доктору, и, потому, не очень въезжающих, как этот самый WebModule вообще работает.
Кстати, врапперов на все случаи жизни не напасешся. :о)
|
|
17-10-2000 00:25При наличии отличных рапперов в Delphi
(TWebModule) писать в описанном выше стиле - мазохизм |
|
16-10-2000 22:45Хорошая статья. Я думаю новичкам должно быть все понятно!
А кто сможет помочь мне в реальных проблемах с CGI???
1. Как из CGI послать запросы-весточки своим программам?
а) Если Я обращаюсь через COM-interface. То при открытии COM интерфейса в уже запущеной программе у меня вместо окрытия связи с запущеной программой почемуто создается новый объект (такое случается только из CGI или ISAPI запущенными Web сервером).
б) При попытке использовать сообщения Windows тоже есть проблемы - в ISAPI не работает FindWindow - нельзя получить HWND окна. И соответственно нельзя отправить сообщение обратно (у CGI нет HWND).
2. Как отлаживать CGI если используется встроенная в DELPHI 4-5 модель CGI с WebModul"ем?
Указанные вопросы возникли в следующей ситуации - у меня есть очень большая разрабатываемая программа которая постоянно запущена и работает с охранным оборудованием и оператором. Мне требуется реализовать к ней Web интерфейс для удаленного управления. Я думал мне поможет CGI или ISAPI! Но пока, как видите есть вопросы!
Пожалуйста, помогите кто знает!
Максим (maxicki@df.ru)
|
|
|
|