![ein Kapitel weiter](../weiter.gif)
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 weiter](../weiter.gif)
© 2001,2002 Jürgen Wolf
|