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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CGI в Delphi 
:(
    Опции темы
Rexar
Дата 1.4.2006, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  var

  Str_Data :TStringList;
          STR : string;

begin

        Str_Data:=TSringList.Create;
       if Request.MethodType = mtPOST then
         Request.ExtractContentFields (Str_Data)
     else if Request.MethodType = mtGET then
         Request.ExtractQueryFields (Str_Data)
      else   begin

         Str_Data.Free;

         Exit;
         end;
end;


Выдает ошибку: [Error] Unit1.pas(34): Undeclared identifier: 'TSringList'
Кто знает, почему ?

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


Эксперт
****


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

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



Вероятно потому, что не подключен модуль Classes
PM MAIL   Вверх
Демо
Дата 1.4.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

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



uses Classes;

В след. раз установи курсор на неизвестное слово и нажми F1. В Help тебе видно будет, где описан объект или функция.


--------------------
    
PM MAIL ICQ Skype   Вверх
Rexar
Дата 1.4.2006, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я написал CGI скрипт, и поместил его в CGI-BIN\

Код

 var
  ST: TStringList;
  s: String;
begin
 ST := TStringList.Create;
 if Request.MethodType = mtPOST then
 Request.ExtractContentFields (ST)
 else if Request.MethodType = mtGET then
 Request.ExtractQueryFields (ST)
 else  begin
     ST.Free;
        Exit;
    end;
    Response.ContentType:='trxt/html';
   Response.Content := '<html><head><title>??? CGI qwerty </title>'+
                    '</head><body>  ....rretert...'+
                     'rterterrtettertre </body></html>';
   ST.Free;
  end;




Как мне с HTML запустить скрипт чтоб получить ответ ?
Когда я жму отправить мне предлагают сохранить файл....
Это код HTML:
Код


<form action="http://localhost/cgi-bin/c.cgi" method="post">
Введите ваше имя:
       <INPUT TYPE="text" NAME="n1" MAXLENGTH=20> <P>
    Введите вашy фамилию:
       <INPUT TYPE="text" NAME="n2" MAXLENGTH=20> <P>
 
<INPUT TYPE="submit" VALUE="Отправить" >
</form>

PM MAIL   Вверх
Демо
Дата 1.4.2006, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

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





--------------------
    
PM MAIL ICQ Skype   Вверх
Rexar
Дата 1.4.2006, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Когда жму на кнопку "Отправить", то предлагает сохранить файл http://localhost/cgi-bin/c.cgi, ПОЧЕМУ ?
П.С. Мне нужно отсылать форму из HTML
Код

<form action="http://localhost/cgi-bin/c.cgi" method="GET">
    Введите ваше имя:
   <INPUT TYPE="text" NAME="n1" MAXLENGTH=20> <P>
    Введите вашy фамилию:
   <INPUT TYPE="text" SNAME="n2" MAXLENGTH=20> <P>
    <br>
     <INPUT TYPE="submit" VALUE="Отправить" >
     <br>
</form>


Это сообщение отредактировал(а) Rexar - 1.4.2006, 21:31
PM MAIL   Вверх
Демо
Дата 1.4.2006, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

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



Цитата(Rexar @ 1.4.2006, 21:28 Найти цитируемый пост)
Когда жму на кнопку "Отправить", то предлагает сохранить файл http://localhost/cgi-bin/c.cgi, ПОЧЕМУ ?


Сервер не настроен как нужно - разреши выполнение скриптов
Добавлено @ 21:43
Для Apache:

AddHandler cgi-script .bat .exe .cgi - разрешенные к выполнению файлы с расширениями
ScriptAlias /cgi-bin/ "x:/home/cgi/" - каталог, в котором находятся CGI


--------------------
    
PM MAIL ICQ Skype   Вверх
Rexar
Дата 3.4.2006, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Сервер настроен нормально, похоже глюк со скриптом....
Скрипт написаный "непосредственно", работает нормально:
Код

program MyApp;
{$APPTYPE CONSOLE}
{$E cgi}
begin
  WriteLn('Content-Type: text/html');
  WriteLn;
  WriteLn;
  WriteLn('<HTML>');
  WriteLn('<HEAD>');
  WriteLn('<META http-equiv="Content-Type" content="text/html;' +
                                ' charset=windows-1251">');
  WriteLn('</HEAD>');
  WriteLn('<BODY>');
  WriteLn('<H1>HELLO WORLD</H1>');
  WriteLn('</BODY>');
  WriteLn('</HTML>');
end.


А Вот объектно не получается сделать скрипт, может у кого-то есть инфа как делать обьектно скрипты на делфи ?

Вот что я наделал сам, но оно не работает, выдает окно чтоб сохранить этот файл, вместо того чтоб вывести Hello World:
Код

 var
  ST: TStringList;
  s: String;
begin
 ST := TStringList.Create;
 if Request.MethodType = mtPOST then
 Request.ExtractContentFields (ST)
 else if Request.MethodType = mtGET then
 Request.ExtractQueryFields (ST)
 else  begin
     ST.Free;
        Exit;
    end;
    Response.ContentType:='trxt/html';
   Response.Content := '<html><head><title>CGI</title>'+
                    '</head><body> HELLO WORLD </body></html>';
   ST.Free;
  end;

PM MAIL   Вверх
_hunter
Дата 3.4.2006, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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





--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Демо
Дата 3.4.2006, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

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



Цитата(Rexar @ 3.4.2006, 18:33 Найти цитируемый пост)
Response.ContentType:='trxt/html';


1. Может быть здесь ошибка(выше - в цитате).
2. У тебя обычный CGI или DLL?
3. Кроме кода, нужно видеть еще и настройки WebModule.Actions.




--------------------
    
PM MAIL ICQ Skype   Вверх
Rexar
Дата 3.4.2006, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Хе, точно ошибка в цитате. Из-за одной буквы почти 2 дня мучался smile

Это сообщение отредактировал(а) Rexar - 3.4.2006, 20:01
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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