summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/fcl-base/examples/testcgi.pp
blob: 24a1e35f873063f5340555cdb2b0441077a3d759 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
{$mode objfpc}
{$H+}

program testcgi;

uses cgiapp,classes,sysutils;

Type
  TTestCGI = Class(TCGIApplication)
    Procedure DoRun; override;
  end;

Procedure TTestCGI.DoRun;

Var
  L : TStrings;
  I: Integer;

begin
  ContentType:='text/html';
  EmitContentType;
  L:=TStringList.Create;
  Writeln('<HTML><TITLE>',title,'</TITLE><BODY>');
  Try
    Writeln('<H1>List of CGI variables:</H1>');
    GetCGIVarList(L);
    For I:=0 to L.Count-1 do
      Writeln(L[i],'<BR/>');
    Writeln('<H1>List of environment variables:</H1>');
    GetEnvironmentList(L);
    For I:=0 to L.Count-1 do
      Writeln(L[i],'<BR/>');
    If (RequestVariableCount>0) then
      begin
      Writeln('<H1>List of form variables:</H1>');
      GetRequestVarList(L);
      For I:=0 to L.Count-1 do
        Writeln(L[i],'<BR/>');
      Writeln('<H1>List of form variables, tabular format:</H1>');
      Writeln('<table width="100%" border="1">');
      Writeln('<TR><TH>Name</TH><TH>Value</TH></TR>');
      GetRequestVarList(L,True);
      For I:=0 to L.Count-1 do
        Writeln('<TR><TD>',L[i],'</TD><TD>',RequestVariables[L[i]],'</TD></TR>');
      end;
  Finally
    Writeln('</BODY></HTML>');
    Terminate;
  end;
end;

begin
  With TTestCGI.Create(Nil) do
    Try
      Title:='Test CGI application';
      Initialize;
      Run;
    Finally
      Free;
    end;
end.