![]() |
Das scheint ja alles wirklich viel umständlicher zu sein, als dies mit php zu machen.
|
Hier mal ein Beispiel für eine CGI Anwendung:
Code:
Und so schwer ist das nun auch wieder nicht.
program MyCgi;
uses Windows, SysUtils; {$APPTYPE CONSOLE} var QueryString: string; begin QueryString := GetEnvironmentVariable('Query_String'); { Argumente mit ? übergeben: 'MyCgi.exe?Param1=Irgendwas&Post=443' } WriteLn('Content-type: text/html');WriteLn; // http-Header schicken WriteLn('<html><body bgcolor=white>'); WriteLn(' ' + QueryString + </p>'); WriteLn('</body></html>'); end. |
Schwer sieht das nicht aus. Ist denn so der generelle Aufbau oder hast du da jetzt Sachen weggelassen?
Kennst du ne gute Seite wo man sowas lernen kann? |
Ich werde mich jetzt mal dran machen und ein kleines Projekt mit Hilfe von D5 Enterprise erstellen. Also, ein wenig noch...
|
Du bist der Beste! Laß dir nur Zeit, eilt nicht. :D
|
Zitat:
Ich habe aber etwas meiner Meinung nach wichtiges weggelassen. Nämlich die Umwandlungsroutine für den Query_String.
Code:
function HexToChar(const S: string): Char;
function HexCharToByte(c: Char): Byte; begin if c in ['0'..'9'] then Result := Ord(c) - Ord('0') else if c in ['a'..'f'] then Result := 10 + ord(c) - ord('a') else if c in ['A'..'F'] then Result := 10 + ord(c) - ord('A') else Result := 0; end; begin if Length(S) = 2 then Result := Char((HexCharToByte(S[1]) shl 4) or (HexCharToByte(S[2]))) else Result := #32; end; procedure QueryStringToList(const QueryString: string; List: TStrings); var S: string; i: Integer; F, P: PChar; begin if QueryString = '' then Exit; F := PChar(QueryString); P := F; while True do begin if P^ in [#0, '&'] then begin SetString(S, F, P - F); F := P + 1; i := 1; while i < Length(S) do begin if S[i] = '%' then begin S[i] := HexToChar(Copy(S, i + 1, 2)); Delete(S, i + 1, 2); end; Inc(i); end; List.Add(S); end; if P^ = #0 then Break; Inc(P); end; end; Zitat:
Die Daten in der Environment Variable Query_String sind die GET Daten. Die POST Daten werden kann man über ReadLn einlesen. Die Länge der POST Daten wird durch die Environment Variable "Content_Length" und der Typ der Daten mit "Content_Type" an das CGI Programm übergeben. |
Das Thema interessiert mich auch. Wie kann man Cookie-Daten einlesen?
|
Zitat:
|
Zu dem GetEnvironmentVariable:
In welcher Unit steht das? Wenn ich das aus der windows.pas benutze, krieg ich ne Fehlermeldung, weil die Parameter falsch sind (ist ja im PDSK klar ersichtlich). Hast du da in deinen Posts einen Fehler gemacht oder beziehst du diese Funktion aus einer anderen Unit? |
Nicht der Beste, aber ich habs in die FAQs gestellt.
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz