Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Perl Formularverarbeitung
Frage
Hallo,
ich muss ein Perl-Script, welches ein Formular einer Website verarbeitet, in php umschreiben. Dort wird an einer Stelle innerhalb der SUB ParseForm folgendes gemacht:
[code]
my ($key, $prefs, $buffer);
if ($FORM{'r_PLZ'}){
my $PLZ = $FORM{'r_PLZ'};
$FORM{'r_PLZ1'} = substr($PLZ,0,1);
$FORM{'r_PLZ12'} = substr($PLZ,0,2);
}
[/code]
Könnt ihr mir helfen, was das zu bedeuten hat? Im auszufüllenden Formular gibt es lediglich ein Feld r_plz, die anderen sind nicht vorhanden.
Gruß
Antwort 1 von Dr.Ma-Busen
Moin!
Sieht so aus als würden zwei neue "Variabeln" erstellt(r_PLZ1 und r_PLZ12) in denen jeweils ein teil von r_PLZ gespeichert werden.
MfG
Sieht so aus als würden zwei neue "Variabeln" erstellt(r_PLZ1 und r_PLZ12) in denen jeweils ein teil von r_PLZ gespeichert werden.
my ($key, $prefs, $buffer);
if ($FORM{'r_PLZ'}){ # Wenn r_PLZ vorhanden, dann...
# r_PLZ in var. $PLZ speichern, z.B. 1234
my $PLZ = $FORM{'r_PLZ'};
# unter $FORM{'r_PLZ1'} den teil ab pos. 0 + 1 zeichen ablegen (1 von 1234)
$FORM{'r_PLZ1'} = substr($PLZ,0,1);
# unter $FORM{'r_PLZ12'} den teil ab pos. 0 +2 zeichen ablegen(12 von 1234)
$FORM{'r_PLZ12'} = substr($PLZ,0,2);
}MfG
Antwort 2 von perl_vs_php
Soweit hatte ich das allerdings auch schon begriffen. Was mir aber nicht klar ist, ist, dass die Substrings z.B. unter $FORM{'r_PLZ1'} abgelegt werden. Im Script wird sonst gar nicht mehr darauf zugegriffen. Und müsste das nicht eigentlich ein Feld aus dem Formular sein?
Antwort 3 von Supermax
$FORM ist einfach nur ein assoziatives Array, das zwar ursprünglich nur die Werte aus dem Formular beinhaltet, dem man aber auch neue Schlüssel/Wert Paare zuweisen kann.
Antwort 4 von perl_vs_php
Und nützt das denn was, wenn man darauf gar nicht mehr zugreift? Normalerweise müsste das Array dann doch wieder leer sein, wenn das Script beendet ist, oder?
Antwort 5 von katy
Hallo perl_vs_php,
katy
Zitat:
nützt das denn was, wenn man darauf gar nicht mehr zugreift?
nein, dann ist es einfach überflüssig.nützt das denn was, wenn man darauf gar nicht mehr zugreift?
Zitat:
Normalerweise müsste das Array dann doch wieder leer sein, wenn das Script beendet ist,
normalerweise sollte ein Programm einfach allen Speicher freigeben, den es zur Ausführung brauchte, also sollte auch das Array nicht leer sondern komplett weg sein.Normalerweise müsste das Array dann doch wieder leer sein, wenn das Script beendet ist,
katy
Antwort 6 von perl_vs_php
Hallo,
sorry für die späte Rückmeldung. hatte mich die letzten Tage weniger mit dem Thema beschäftigt.
Jetzt hab ich da ein neues Problem:
Ich habe mehrere Formulare, die alle mit dem gleichen Skript bearbeitet werden sollen. Da die Formulare unterschiedliche Input-Felder haben, habe ich das über eine schleife gelöst. Jetzt ist aber das Problem, dass es auch ein Double-Opt-In geben soll. Erst wenn der Benutzer einen Bestätigungslink angeklickt hat, soll eine Email mit den entsprechenden Daten aus dem Formular an mich gesendet werden. Jetzt stellt sich mir aber die Frage, wie ich die Daten am besten "zwischenspeichere". Mache ich das am besten über eine Datenbank, oder lieber mit Cookies? Datenbank wäre wohl besser, aber wie kann ich das machen mit den zig verschiedenen Formularfeldern?
Viele Grüße
sorry für die späte Rückmeldung. hatte mich die letzten Tage weniger mit dem Thema beschäftigt.
Jetzt hab ich da ein neues Problem:
Ich habe mehrere Formulare, die alle mit dem gleichen Skript bearbeitet werden sollen. Da die Formulare unterschiedliche Input-Felder haben, habe ich das über eine schleife gelöst. Jetzt ist aber das Problem, dass es auch ein Double-Opt-In geben soll. Erst wenn der Benutzer einen Bestätigungslink angeklickt hat, soll eine Email mit den entsprechenden Daten aus dem Formular an mich gesendet werden. Jetzt stellt sich mir aber die Frage, wie ich die Daten am besten "zwischenspeichere". Mache ich das am besten über eine Datenbank, oder lieber mit Cookies? Datenbank wäre wohl besser, aber wie kann ich das machen mit den zig verschiedenen Formularfeldern?
Viele Grüße

