[fpc-pascal] CGI application

Vannus vannus at gmail.com
Wed May 19 21:54:35 CEST 2010


Thats me up & running now - thanks for your help guys, I'll certainly poke
around those CGI vars.

On 19 May 2010 14:19, Carsten Bager <carsten at beas.dk> wrote:

> > How do i get command line vars? i tried GetENV() but it didn't understand
> GetEnv() (which unit is
> > it in?)
>
>
> Here is a small cgi program. Comments are in Danish but I hope you can get
> the meaning.
> Carsten
>
>
> {Program version 1.00}
> program listdir2html;
> {LONGSTRINGS OFF}
>
> {$INFO +---------------------------------+}
> {$INFO | Statistik projekt til Oegendahl |}
> {$INFO +---------------------------------+}
>
> uses
>  dos,
>  classes,
>  uInit,
>  sysutils,    {System}
>  uSpStatus,
>  testbruger;
>
> var
>  QUERY_STRING:shortstring;
>
>
> Procedure PrintHeader(title:shortstring);
> Begin
>  Writeln('HTTP/1.0 200 OK');
>  Writeln('Server: Netscape-Communications/3.0');
>  Writeln('Content-type: text/html');
>  Writeln;
>  Writeln;
>  Writeln('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
> Transitional//EN">');
>  Writeln('<html>');
>  Writeln('  <head>');
>  Writeln('    <meta content="text/html;charset=windows-1252"
> http-equiv="Content-Type">');
>  Writeln('    <title>',title,'</title>');
>  Writeln('  </head>');
>  Writeln('  <body>');
>  Writeln('    <table style="background-color: rgb(153, 153, 153);
> text-align: center; width:
> 100%;" border="0" cellpadding="2" cellspacing="2">');
>  Writeln('      <tbody>');
>  Writeln('        <tr>');
>  Writeln('          <td style="font-size: 30px; font-weight: bold;">');
>  Writeln('            ',cFaellesOverskrift);
>  Writeln('          </td>');
>  Writeln('        </tr>');
>  Writeln('      </tbody>');
>  Writeln('    </table>');
>  Writeln('    <h2>');
>  Writeln('      ',title);
>  Writeln('    </h2>');
> End;
>
> Procedure PrintFooter;
> Begin
>  Writeln('    </p>');
>  Writeln('  </body>');
>  Writeln('</html>');
> End;
>
>
> Procedure FindOgListFiler(title,PartFileName:shortstring);
> var
>  Info:TSearchRec;
>  flist:tstringlist;
>  p:integer;
>  date,s:shortstring;
> Begin
>  flist:=tstringlist.create;
>  If FindFirst (PartFileName,faAnyFile,Info)=0 then       {Find f°rste fil}
>    begin
>      Repeat
>        flist.add(Info.Name);                   {Find de f°lgende filer}
>      Until FindNext(info)<>0;
>    end;
>    flist.sort;                                 {Soter filer}
>    p:=flist.count;
>    while p<>0 do                               {Print fil navn til HTML
> side}
>    begin
>      dec(p);
>      s:=flist.Strings[p];
>      date:=copy(s,succ(length(QUERY_STRING)),12);
>      date:=title+
>            copy(date,1,4)+
>            ' d. '+copy(date,7,2)+
>            '/'+copy(date,5,2)+
>            ' Kl. '+copy(date,9,2)+
>            ':'+copy(date,11,2);
>
>     // WriteLn('<a href="../log/',s,'">',date,'</a>');
>      WriteLn('<INPUT TYPE="BUTTON" VALUE="',date,'"
> ONCLICK="window.location.href=''http:','../log/',s,'''"><br>');
>      flist.delete(pred(flist.count));
>    end;
>  flist.free;
> End;
>
> begin
>  if not uSpStatus.InitShaerdMemory(InitShaerdMemoryStr,false) then
>  begin
>    PrintHeader('Beas login');
>    writeln ('Kan ikke initialisere shared memory<br>');
>    PrintFooter;
>    halt;
>  end;
>  if not ErBrugerOk then
>    halt(1);
>  QUERY_STRING:=getenv('QUERY_STRING');
>  if debug.Listdir2html then
>  begin
>    writeln(stderr);
>    writeln(stderr,'QUERY_STRING= ',QUERY_STRING);
>  end;
>  chdir('..');
>  if pos('Statistik',QUERY_STRING)<>0 then
>  begin
>    PrintHeader('Historiske statistik data fra blandeanlµg');
>    FindOgListFiler('Statistik fil fra ','./log/statistik*.html');
>    PrintFooter;
>  end;
>  if pos('Blandelog',QUERY_STRING)<>0 then
>  begin
>    PrintHeader('Historiske  log data fra blandeanlµg');
>    FindOgListFiler('Log fil fra ','./log/blandelog*.html');
>    PrintFooter;
>  end;
>  if pos('Program',QUERY_STRING)<>0 then
>  begin
>    PrintHeader('Historiske  program data fra blandeanlµg');
>    FindOgListFiler('Program fil fra ','./log/program*.html');
>    PrintFooter;
>  end;
>  if pos('AlarmLog',QUERY_STRING)<>0 then
>  begin
>    PrintHeader('Historiske  alarm log data fra blandeanlµg');
>    FindOgListFiler('Alarm log fil fra ','./log/alarmlog*.html');
>    PrintFooter;
>  end;
> end.
>
>
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20100519/75628b92/attachment.html>


More information about the fpc-pascal mailing list