Stephan: Formular auswerten

Hallo,

ich habe ein Formular mit sehr vielen Feldern drin, nun möchte ich diese am liebsten nicht alle einzeln auslesen lassen sondern im script über $FORMULAR{'wertX'} darauf zugreifen können ...

(wie) ist das möglich?

Danke für jede Hilfe

Stephan

  1. Hallo Stephan

    ich habe ein Formular mit sehr vielen Feldern drin, nun möchte ich diese am liebsten nicht alle einzeln auslesen lassen sondern im script über $FORMULAR{'wertX'} darauf zugreifen können ...

    Du kannst den typischen Standard-Code fuer Formularverarbeitung nach der post-Methode verwenden:

    read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
       @pairs = split(/&/, $buffer);
       foreach $pair (@pairs) {
          ($name, $value) = split(/=/, $pair);
          $value =~ tr/+/ /;
          $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
          $value =~ s/<!--(.\n)*-->//g;
          $FORM{$name} = $value;
       }

    Anschliessend kannst du mit Konstrukten wie:
    $FORM{'Feldname'} auf den Wert von 'Feldname' zugreifen.

    viele Gruesse
      Stefan Muenz

    1. Hallo,

      ich danke Dir und auch Cheatah ...

      Stephan

    2. Du kannst den typischen Standard-Code fuer Formularverarbeitung nach der post-Methode verwenden:

      read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
         @pairs = split(/&/, $buffer);
         foreach $pair (@pairs) {
            ($name, $value) = split(/=/, $pair);
            $value =~ tr/+/ /;
            $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
            $value =~ s/<!--(.\n)*-->//g;
            $FORM{$name} = $value;
         }

      Wobei natürlich die von Cheatah vorgeschlagene Methode vorzuziehen ist.

      Peter

      1. Hi,

        Du kannst den typischen Standard-Code fuer Formularverarbeitung nach der post-Methode verwenden:

        Wobei natürlich die von Cheatah vorgeschlagene Methode vorzuziehen ist.

        danke. Wie lautete noch mal Deine Kontonummer...?

        SCNR :-)

        Cheatah

  2. Hi,

    ich habe ein Formular mit sehr vielen Feldern drin, nun möchte ich diese am liebsten nicht alle einzeln auslesen lassen sondern im script über $FORMULAR{'wertX'} darauf zugreifen können ...

    (wie) ist das möglich?

    die einfachste und zugleich trotzdem sicherste und alles in allem empfehlenswerteste, weil auch sauberste Methode ist:

    use CGI;
    my $cgi = new CGI;
    print $cgi->param('wertX');

    Nach den ersten beiden Zeilen kannst Du analog zur dritten Zeile auf beliebige Formularfeldinhalte zugreifen. Multiple-select-Felder (<select multiple>) werden als Array zurückgegeben, also @felder = $cgi->param('selectfeld');

    Cheatah