Norbert Kölln: Skript erhält nicht alle Formulardaten

Moin, moin!

Ich habe eine HTML-Seite mit einem umfangreichen Formular (ca. 100 * (7 verknüpfte Radio-Buttons + 1 einzeiliges Textfeld)) Die Daten übergebe ich per Methode "post" an ein Perl-Skript.

Im Perl-Skript verwende ich einen Konstrukt wie
  use CGI;
  $cgi=new CGI;
  @felder=$cgi->param();
  foreach $feld (@felder)
  {
    $feldinhalt=$cgi->param($feld);
    print "$feld=$feldinhalt<br>\n"; # Anzeige für Test
  }
um die Formulardaten verarbeiten zu können.

Angezeigt werden mir durch den obigen Quellcode aber aber nur die ersten Felder mit ihren Inhalten. Sorge ich dafür, daß die Formularfelder kürzere Namen haben, so wird die vom Perlskript erzeugte Ausgabe länger. Es scheint also keine Begrenzung der Feldanzahl, sondern eine Begrenzung bei der Übertragung der Formulardaten das Problem zu sein.

In der Doku des Moduls CGI bin ich auf die Variable POST_MAX gestoßen, die aber schon auf -1 gesetzt ist, also keine Beschränkung erzwingt.

Das Ganze läuft bei mir übrigens lokal unter Win NT 4.0 SP 4. Als Server dient Apache 1.3.24 (in dessen Konfigurationsdateien mir keine Datenmengenbegrenzungen aufgefallen sind). Bei meinem Perl handelt es sich um ActivePerl Build 522, das CGI-Modul ist in der Version 2.46 im Einsatz. Eine Verwendung neuerer/anderer BS-/Server-/Perl-Versionen kommt als Lösung nicht in Frage.

Kann ich die mögliche Datenmenge erhöhen, und wenn ja: wie? Oder bin ich auf einer ganz falschen Fährte?

Über Hilfestellungen würde ich mich sehr freuen!

Norbert

  1. Hallo Norbert,

    wenn ich mich recht erinnere, scheinen einige Browser mit der Übertragung solch großer Formulare Probleme zu haben. Schau Dir doch einfach mal an, was im Request überhaupt ankommt.

    Gruß

    Eidgenosse

    1. Hallo Eidgenosse!

      Vielen Dank für die Antwort! Dem Hinweis auf Probleme beim Browser werde ich mal nachgehen. Aber auch, wenn das Fehlverhalten auf den Browser zurückzuführen ist, brauche ich noch eine Lösung. Denn das ganze soll mit möglichst jedem Browser funktionieren.

      Norbert