testweb.pp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. program testweb;
  2. {$mode objfpc}{$H+}
  3. uses
  4. Classes, SysUtils, httpdefs, custcgi,cgiapp,fphttp,fpcgi,
  5. webutil, fpweb;
  6. Type
  7. TMyWeb=Class(TCustomCGIApplication)
  8. procedure HandleRequest(ARequest: TRequest; AResponse: TResponse); override;
  9. end;
  10. procedure TMyWeb.HandleRequest(ARequest: TRequest; AResponse: TResponse);
  11. Procedure AddNV(Const N,V : String);
  12. begin
  13. AResponse.Contents.Add('<TR><TD>'+N+'</TD><TD>'+V+'</TD></TR>');
  14. end;
  15. Var
  16. I,P : Integer;
  17. N,V : String;
  18. begin
  19. With AResponse.Contents do
  20. begin
  21. BeginUpdate;
  22. Try
  23. Add('<HTML><TITLE>FPC CGI Test page</TITLE><BODY>');
  24. DumpRequest(ARequest,AResponse.Contents);
  25. Add('<H1>CGI environment:</H1>');
  26. Add('<TABLE BORDER="1">');
  27. Add('<TR><TD>Name</TD><TD>Value</TD></TR>');
  28. For I:=1 to GetEnvironmentVariableCount do
  29. begin
  30. V:=GetEnvironmentString(i);
  31. P:=Pos('=',V);
  32. N:=Copy(V,1,P-1);
  33. system.Delete(V,1,P);
  34. AddNV(N,V);
  35. end;
  36. Add('</TABLE>');
  37. Add('</BODY></HTML>');
  38. Finally
  39. EndUpdate;
  40. end;
  41. end;
  42. end;
  43. Procedure Run;
  44. begin
  45. With TMyWeb.Create(Nil) do
  46. try
  47. Initialize;
  48. Run;
  49. Finally
  50. Free;
  51. end;
  52. end;
  53. begin
  54. Run;
  55. end.