Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.29;
Скачать: CL | DM;

Вниз

Проблемы с CGI-приложениями   Найти похожие ветки 

 
SergProger ©   (2006-05-01 13:00) [0]

Всем привет! Люди, объясните мне пожалуйста, как писать CGI-приложения. Пробовал написать такое:

program CGI_test;
{$APPTYPE CONSOLE}
{$E CGI}
begin
 WriteLn("<HTML>");
 WriteLn("<HEAD>");
 WriteLn("<TITLE>Простейшее CGI приложение</TITLE>");
 WriteLn("<META http-equiv="Content-Type" content="text/html; charset=windows-1251">");
 WriteLn("</HEAD>");
 WriteLn("<BODY>");
 WrОтiteLn("<CENTER><H1>HELLO WORLD</H1></CENTER>");
 WriteLn("</BODY>");
 WriteLn("</HTML>");
end.

Компилируется нормально, но на сервере запускаться оно не хочет. Объясните мне, в чём проблема?


 
alex-drob ©   (2006-05-01 13:21) [1]

На сервере поддержка cgi есть?
Файл находиться в каталоге cgi-bin?
Что происходит при запуске файла на сервере?


 
SergProger ©   (2006-05-01 13:33) [2]

Сервер поддерживает CGI, файл находится в нужном каталоге, при запуске пишет: "CGI script error".


 
Anatoly Podgoretsky ©   (2006-05-01 13:34) [3]

Серверу можно верить.


 
SergProger ©   (2006-05-01 13:43) [4]

Сервер www.yard.ru Та же проблема на сервере www.holm.ru


 
TUser ©   (2006-05-01 14:16) [5]

А http заголовки не надо писать?

Кроме того, - на сервере тебе разрешено запускать виндоусовские программы в качестве cgi?


 
Sergey Masloff   (2006-05-01 14:20) [6]

TUser ©   (01.05.06 14:16) [5]
>на сервере тебе разрешено запускать виндоусовские программы в >качестве cgi?
Вот я тоже удивился

Кстати заголовки можно не писать если сервер под виндой все будет работать


 
DrPass ©   (2006-05-01 14:31) [7]

Попробуй вместо writeln попользовать GetStdHandle(STD_HANDLE_OUTPUT) и соответственно WriteFile. Как показывает практика, writeln НЕ ПИШЕТ в стандартный поток вывода, а выводит сразу на консоль.


 
Sergey Masloff   (2006-05-01 14:44) [8]

DrPass ©   (01.05.06 14:31) [7]
Пишет-пишет.
Кстати вышеприведенный код работает


 
DrPass ©   (2006-05-01 16:30) [9]


> Sergey Masloff   (01.05.06 14:44) [8]

Спорить не буду, но когда у меня возникла необходимость перехватить вывод консольного приложения, программа напрочь отказалась принимать консольку с writeln. А WriteFile - на ура


 
SergProger ©   (2006-05-01 23:05) [10]

Вот если бы кто-нибудь мне объяснил, как пользоваться процедурой WriteFile...


 
DrPass ©   (2006-05-02 00:19) [11]

А что там сложного?
uses
 windows;
var
 h: THandle;
 cnt: cardinal;
begin
 h:= GetStdHandle(STD_OUTPUT_HANDLE);
 WriteFile(h, "<HTML>", 6, cnt, nil);
 WriteFile(h, "<HEAD>", 6, cnt, nil);
 WriteFile(h, "<TITLE>Простейшее CGI приложение</TITLE>",
   length("<TITLE>Простейшее CGI приложение</TITLE>"), cnt, nil);
end.


 
SergProger ©   (2006-05-03 13:09) [12]

OK, спасибо, понял. Дело в том, что с WriteFile я впервые сталкиваюсь... :-)


 
SergProger ©   (2006-06-01 01:39) [13]

Но всё-таки, даже с процедурой WriteFile приложение не хочет работать. Кроме того, я выяснил, что сервер работает под Unix. Зацените работу, если хотите >>> http://sergproger.h16.ru



Страницы: 1 вся ветка

Текущий архив: 2006.10.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.065 c
4-1150366417
kliman
2006-06-15 14:13
2006.10.29
Перехват комбинации клавиш


15-1160404053
Галинка
2006-10-09 18:27
2006.10.29
Как сделать на MS VC++


2-1160851964
Kostafey
2006-10-14 22:52
2006.10.29
Закрытие окна згружаемого из dll


2-1160722864
проходил мимо решил заглянуть
2006-10-13 11:01
2006.10.29
скопировать файл


6-1149503312
Slaga
2006-06-05 14:28
2006.10.29
Доступ к Сервису с локальной сети.