summaryrefslogtreecommitdiff
path: root/packages/fcl-base/examples/testweb.pp
blob: 0767bf6168587cc2081dfaca5e77102f60e4a176 (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
62
63
64
65
66
67
program testweb;

{$mode objfpc}{$H+}

uses
  Classes, SysUtils, httpdefs, custcgi,cgiapp,fphttp,fpcgi,
  webutil, fpweb;

Type
  TMyWeb=Class(TCustomCGIApplication)
    procedure HandleRequest(ARequest: TRequest; AResponse: TResponse); override;
  end;

procedure TMyWeb.HandleRequest(ARequest: TRequest; AResponse: TResponse);

  Procedure AddNV(Const N,V : String);

  begin
    AResponse.Contents.Add('<TR><TD>'+N+'</TD><TD>'+V+'</TD></TR>');
  end;

Var
  I,P : Integer;
  N,V : String;

begin
  With AResponse.Contents do
    begin
    BeginUpdate;
    Try
      Add('<HTML><TITLE>FPC CGI Test page</TITLE><BODY>');
      DumpRequest(ARequest,AResponse.Contents);
      Add('<H1>CGI environment:</H1>');
      Add('<TABLE BORDER="1">');
      Add('<TR><TD>Name</TD><TD>Value</TD></TR>');
      For I:=1 to GetEnvironmentVariableCount do
        begin
        V:=GetEnvironmentString(i);
        P:=Pos('=',V);
        N:=Copy(V,1,P-1);
        system.Delete(V,1,P);
        AddNV(N,V);
        end;
      Add('</TABLE>');
      Add('</BODY></HTML>');
    Finally
      EndUpdate;
    end;
    end;
end;

Procedure Run;

begin
  With TMyWeb.Create(Nil) do
    try
      Initialize;
      Run;
    Finally
      Free;
    end;
end;

begin
  Run;
end.