Richard Krause: Daten werden nicht in Hash eingelesen

Beitrag lesen

Hallo,

Ich hab das Script nun umgeschrieben wie folgt, nun wird aber nach dem Absenden offenbar immer die Subroutine no_name aufgerufen, auch wenn ein Name eingegeben wird (keine Fehlermeldung im Log). Ich hab das mit weiteren Subroutinen gelöst, elsif funktioniert ja dann mit exists und defined nicht mehr:

Solltest Du das Formular mit der HTTP-Methode POST abgesendet haben, so kann ich mir gut vorstellen, daß das nicht funktioniert.
Du solltest entweder CGI.pm _oder_ cgi-lib.pl verwenden, wobei ich Dir aus mehreren Gründen eher CGI.pm empfehlen würde.
Beide Module zusammen eingesetzt kann, vor allem bei POST, nicht funktionieren, da beide versuchen die Daten von STDIN zu lesen, was allerdings nur bei einem erfolgreich sein kann. Das zweite Modul, in Deinem Falle also cgi-lib.pl und ReadParse hat das Nachsehen, wodurch auch keine Daten in dem Hash landen.

ok - sieht so aus, wie wenn ich einen Mix aus cgi.pm und cgi-lib.pl verwendet habe. Liegt wohl daran, dass ich Perl-Anfänger bin und die Scripts, die ich als Vorlage hatte, nicht alle dieselben Module/Library verwendeten ;-) und ich nicht in der Lage war, dies zu erkennen...

Ich werde also cgi.pm verwenden und versuche gerade zu verstehen, wie ich dann an die Formlardaten komme. Ist das mit
my %besucherdaten = $cgi->param()
richtig?

BTW. wußte ich gar nicht, daß ReadParse in der Wiese funktionieren kann, so wie Du es aufrufst. Ich kenne nur die Form
ReadParse(*benutzerdaten)
Woebei dann neben einem Hash auch ein Array und ein Skalar beschrieben wird.

Grüße
  Klaus