xwolf.de|com

Menü

Inhalt dieser Site

Ansicht

Individuelle Benutzerkonfiguration für die Site.

Druckansicht Startseite Suchen

A A A A

CGI Tutorial - Teil 3 / 10

Wolfgang Wiese (www.xwolf.de, xwolf@xwolf.de), Juli 1998, Letzte Änderung: Mai 2003

[Das Common Gateway Interface]
[Übergabe von Benutzereingaben]
[Decodierung der übergebenen Daten]
[Schritt 1: Erstellung einer Eingabeform]
[Schritt 2: Die Programmierung]
[Schritt 3: Debugging eines CGI-Programmes]
[Standardfehler]
[Die Optimierung von CGI-Programmen durch Libraries und Module]
[Tipps, Tricks und Beachtenswertes]
[Links zu wichtigen FAQs und CGI-Seiten]

Decodierung der übergebenen Daten

Die Environment-Variablen $ENV{'REQUEST_METHOD'} und $ENV{'QUERY_STRING'}, sowie der Perl-Aufruf read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}) dienen dazu den codierten Datenstring, welcher dem CGI-Programm übergeben wurde, zu empfangen.
In dieser Form ist der Datenstring noch verschlüsselt. Perl liefert jedoch gute Routinen, ihn einfach zu decodieren. Der folgende Code aus einem CGI-Programm faßt das Vorgehen zusammen:

if ($ENV{'REQUEST_METHOD'} eq "GET") { 
  $buffer = $ENV{'QUERY_STRING'}; 
} else { 
  read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); 
}
@nvpairs = split(/&/,$buffer);
foreach $pair (@nvpairs) { 
  ($name, $value) = split(/=/, $pair);
  $value =~ tr/+/ /;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  $in{$name} = $value;
}

Dieser Code enthält schon eine Optimierung. Dadurch, daß die Werte in einem assoziativen Array gespeichert werden, kann der Programmierer den Zugriff auf die einzelnen Werte flexibel handhaben.
Beim Zugriff auf ein Feld mit dem Namen "Text" wird der entsprechende Aufruf im Code der folgende sein: $in{'Text'}.

In C werden die Environment-Variablen mittels des folgenden Aufrufes angefordert und zur Verarbeitung freigegeben:

asdf = (char *) getenv ("QUERY_STRING");
if (asdf == NULL) {
  args[0] = '\0';
} else {
  strcpy (args, asdf);
}

Die ersten 3 Punkte haben die Grundlagen eines CGI-Programmes aufgezeigt. Im folgenden entwickeln wir ein neues CGI-Programm Schritt-für-Schritt um zu zeigen, wie die wirkliche Programmierung neben der reinen Theorie aussieht. Es wird dabei die Interpretersprache Perl verwendet.

Das Internet eignet sich sehr gut, um Umfragen zu den verschiedensten Themen zu machen. Und in der Tat machen viele CGI-Programme nichts anderes. Wir werden deswegen ein ebensolches Programm entwickeln. Dabei wird auch auf die Standard-Funktionen von Perl und HTML eingegangen.

Wie oben bereits ansatzweise gezeigt, benötigt jedes CGI-Programm eine Eingabeform.



Info

© 1996 - 2003 by xwolf