Einlesen der übertragenen Daten


@Formularfelder = split(/&/, $Daten); foreach $Feld (@Formularfelder) { ($name, $value) = split(/=/, $Feld); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/<!--(.|\n)*-->//g; $Formular[$i] = $name; $i = $i + 1; $Formular[$i] = $value; $i = $i + 1; } [ Quelle: Münz, Stefan: SELFHTML CGI-Perl - Perl-Sprachelemente - CGI-typische Anweisungen in Perl, http://www.teamone.de/selfhtml/tgcm.htm#a1 ]

In der ersten Zeile werden die übertragenen Daten aus dem Skalar $Daten, die mit einem "&" voneinander getrennt sind, gespalten und in dem Array - eine Liste mehrerer Daten, die mit einer Indexnummer angesprochen werden können - @Formularfelder gespeichert.
Danach wird jedes Datum von @Formularfelder (foreach $Feld (@Formularfelder)) in den in der HTML-Datei definierten Feldnamen und den eingegebenen Wert getrennt, wobei der jeweilige Wert aus @Formularfelder in dem Skalar $Feld zwischengespeichert wird. Das Trennzeichen ist "=" und die resultierenden Variablen sind $name und $value.
Die folgenden 3 Zeilen formatieren die übertragenen Daten in "normalen" Text.
Nun wird der Name und Wert des aktuell bearbeiteten Feldes zur Weiterverwendung im Script im Array @Formular gespeichert: $Formular[$i] = $name und $Formular[$i] = $value. Da die Laufvariable $i am Anfang den Wert 0 hat, wird der $name des Feldes an 0ter Stelle des Arrays gespeichert. Danach wird $i um 1 erhöht und der Wert infolgedessen an 1ter Stelle gespeichert. Danach wird $i erneut um 1 erhöht und der Durchgang wiederholt sich für die restlichen (Formular-)Felder, so dass die Namen an den geraden und die Werte an den ungeraden Stellen von @Formular gespeichert werden.
<< Inhalt >>



©opyrights @ Nils Heuermann & Stefan Dyck 2000