http://qs1969.pair.com?node_id=336597

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Howdy... I have a form that may contain several hundred fields. $CGI::POST_MAX = -1. In the Apache httpd.conf file, we have this line:
LimitRequestBody 2147483647
Yet when I submit the form, I only get the first 8k (field names + data). I'm running ActiveState perl 5.6.1 on Windows XP (don't ask). Here's the code.

Can anyone *please* help me out? I have no idea why this is happening. Yes, I have tried Apache forums.
Thank you Thank you Thank you.
#!C:\perl\bin\perl -w use CGI; use strict; $| = 1; my $query = new CGI; print $query->header("text/html"); print "<html><body>\n"; for my $val ($query->param){ my $ct = 1; print "<BR>submitted $val: "; foreach ($query->param($val)) { print "<BR>$ct [" . $query->param($val) . "]\n"; $ct += 1; } } print "<form name=frmSize method=Post>\n"; #The input field "x" has a value 100 bytes long. for (my $i = 0; $i < 200; $i++){ print "<BR>input box $i:<input type=text size=110 name=\"x\" value +=\"012345678901234567890123456789012345678901234567890123456789012345 +6789012345678901234567890123456789\">\n"; } print "<BR><input type=submit></form>\n"; print "</body></html>\n"; exit 0;

Replies are listed 'Best First'.
Re: Form POST Size
by wolfi (Scribe) on Mar 15, 2004 at 05:44 UTC

    i deleted my original reply (i think, i was working on the wrong problem.)

    but i can tell you this - i doubt it has anything to do with apache. I have very open (insecure) localhost apache server on a winXP(never goes online). I don't have that the LimitRequestBody config listed and my CGI module has not been modified... And i still got the same result back, that you did.

    So, i'm thinking, it's in the script (but i'm sorry, i don't have the answer further than that.)

      I wish it were in the script... but then, why would it work fine on other platforms (and on other networks)? I did contact my ISP and got a terse response from someone suggesting the code is wrong. But, geez, it's 30 lines long. Here it is. I hope it is in the script and someone can tell me what the problem is... Anyone???
      #!C:\perl\bin\perl -w #This script shows the current standings. use CGI; use strict; $| = 1; my $query = new CGI; print $query->header("text/html"); print "<html><body>\n"; #print out the text fields that were submitted via the form. for my $val ($query->param) { my $ct = 1; print "<BR>submitted $val: "; foreach ($query->param($val)) { print "<BR>$ct [" . $query->param($val) . "]\n"; $ct += 1; } } print "<form name=frmSize method=Post>\n"; #Create 200 text fields for (my $i = 0; $i < 200; $i++) { #Create a text field with 100 bytes of data print "<BR>input box $i:<input type=text size=110 name=\"x\" value +=\"012345678901234567890123456789012345678901234567890123456789012345 +6789012345678901234567890123456789\">\n"; } print "<BR><input type=submit></form>\n"; print "</body></html>\n"; exit 0;
Re: Form POST Size
by esskar (Deacon) on Mar 15, 2004 at 07:24 UTC
    well, maybe it is an apache problem... I tried that script an on server different to apache on an WinXP machine (This is perl, v5.8.0 built for MSWin32-x86-multi-thread) and it works just fine.
      Yes -- the script seems to work fine on UNIX and Windows 2K. I just can't imagine what the problem might be. Any other suggestions? Thanks for your help.

        This looks a little like something I've seen in another node.

        Good-luck,

        Anne