ein Kapitel zurück                                           ein Kapitel weiter

In den beiden Kapiteln zuvor haben wir immer etwas gehört das mittels GET und POST der Text codiert wird. Was können wir darunter verstehen......

  • Die einzelnen Formularelemente inklusive ihrer Daten werden durch ein & voneinander getrennt.
  • Name und Daten eines Formularelements werden durch ein Istgleichzeichen = voneinander getrennt.
  • Leerzeichen in den eingegebenen Daten (z.B. bei mehreren Wörtern) werden durch ein Pluszeichen + ersetzt.
  • Alle Zeichen mit den ASCII-Werten 128 bis 255 (hexadezimal 80 bis FF) werden durch eine Hexadezimalzeichenfolge umschrieben, eingeleitet durch ein Prozentzeichen % und dahinter der Hexadezimalwert des Zeichens (z.B. wird der deutsche Umlaut ö durch %F6 umschrieben).
  • Alle Zeichen, die in diesen Regeln als Steuerzeichen vorkommen (also &, +, = und %) werden ebenfalls hexadezimal umschrieben, und zwar genau so wie höherwertige ASCII-Zeichen.

Beispiele für Hexdezimale Umschreibungen.......

Zeichen URI-codierter Hex-Wert -------------------------------------- Tab %09 Space %20 " %22 # %23 % %25 & %26 ( %28 ) %29 ' %2C . %2E / %2F : %3A ; %3B < %3C = %3D > %3E ? %3F @ %40 [ %5B \ %5C ] %5D ^ %5E , %60 { %7B | %7C } %7D ~ %7E

Jetzt bekommen sie Beispielsweise folgende Daten übermittelt.....

name = Jörg Neun
e-mail = joerg@pronix.de
hobby = pc (Programmieren)


Dies würden den Codiert folgendermaßen aussehen.........

name=J%F6rg+Neun&e-mail=joerg%40pronix.de&hobby=pc+%28Programmieren%29

Der Wert von CONTENT_LENGTH beträgt dabei 71. Um diesen Text jetzt zu decodieren werden die meisten vermutlich das CGI-Modul verwenden oder folgendes in Ihr Skript schreiben........

 $value=~ tr/+/  /;
$value=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;


Mit dem CGI.pm Modul brauchen sie sich um die Codierung der Eingabe überhaupt nicht zu kümmern. Um auf unser Beispiel eben zurückzukommen.........

name = Jörg Neun
e-mail = joerg@pronix.de
hobby = pc (Programmieren)  

...erledigt uns das CGI.pm Modul die ganze Arbeit folgendermaßen......

use CGI qw(:standard);
$name=param('name');
$mail=param('e-mail');
$hobby=param('hobby');  

Ich denke mal das die meisten für Kurz oder Lang sowieso das CGI.pm Modul für das Erstellen von CGIs hauptsächlich verwenden werden. Es läßt sich vieles damit vereinfachen. In manchen CGI Programmen wird das Modul häufig als Hauptzweck für die Dekodierung verwendet.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf