andre: POST_MAX an die Spezialisten

Hallo,
meine Farge:
Wenn ich in einem Perl script die max. Grenze für Datein setze, wie in diesem Beipiel:

#!/usr/bin/perl

use strict;
use CGI;

$CGI::POST_MAX=1024*10;

print "Content-type: text/html\n\n";
print "Test";

Dann müsste das Script doch mit einer Fehlermelung abbrechen wenn mehr als 10KB übertragen werden. Das passiert aber nicht wenn ich mit einem Formular eine 1 MB Datei übertrage (das merke ich an der Zeit) wird diese erst komplett übertragen und das "Test" ausgegeben.

Hab ich da was falsch verstanden???

Ich dachte wenn ich das so setzte wie oben, und ich beipielsweise eine 10 MB oder 100 MB Datei übertrage, dann müsste doch nach wenigen Sekunden eine Fehlermeldung erscheinen oder???

Wie kann ich nachprüfen ob in meinen Perl "POST_MAX" überhaupt enthalten ist???

Danke und Tschüss

  1. Hab ich da was falsch verstanden???

    Ich dachte wenn ich das so setzte wie oben, und ich beipielsweise eine 10 MB oder 100 MB Datei übertrage, dann müsste doch nach wenigen Sekunden eine Fehlermeldung erscheinen oder???

    Soweit ich das verstehe, begrenzt du damit die Größe der datei, die auf dem Server ankommt und nicht die Menge der Daten die Übertragen werden.
    D.h. es werden zwar die 1 MB übertragen (das kannst du auch nicht verhindern, da dein Skript ja keinen Einfluß auf den Browser hat), aber sie werden nicht akzeptiert, d.h. sie werden verworfen.

    Struppi.

    1. hi,

      D.h. es werden zwar die 1 MB übertragen (das kannst du auch nicht verhindern, da dein Skript ja keinen Einfluß auf den Browser hat), aber sie werden nicht akzeptiert, d.h. sie werden verworfen.

      Es scheint so, dass das so ist.

      hab ein script zum testen, s.u. Beim Überschreiten POST_MAX wird einfach der else{} zweig neu geladen.

      Zum Testen also....

      Gruss, Rolf

      =cut
      #!/usr/bin/perl

      use CGI 'param';
      $CGI::POST_MAX = 30;
      use CGI::Carp qw(fatalsToBrowser);

      print "Content-type: text/html\n\n";

      if(param){
       print $ENV{'CONTENT_LENGTH'}," ", $CGI::POST_MAX;
      }
      else{
       print qq(
        <form action="" method="post">
        <input name="IN">
        <input type="submit" name="OK">
        </form>
       );
      }
      =cut