Viewing Raw POST Data
I'll show you how to see the raw POST data submitted with a form.
Changing a form's method="post" to method="get" is a good way to see what is submitted. (The submitted information will be appended to the URL.) However, sometimes it is necessary to test whether or not method="post" actually works, or to see exactly what POST information is received when the form is submitted.
That is what this article is for, to show you how to do those things.
The following Perl CGI script will accept a POST submission and tell you:
-
The size of the information received (the character count).
-
The actual information, as received, before any processing has been applied to it. (It will print "[No POST data received]" if no POST data was received.)
Here is the CGI script. Instructions follow.
#!/usr/bin/perl my $buffer = ''; if($ENV{CONTENT_LENGTH}) { read(STDIN,$buffer,$ENV{CONTENT_LENGTH}); } print "Content-type: text/plain\n\n"; print 'Post data is (' . length($buffer) . " chars):\n"; if( ! length($buffer) ) { $buffer = '[No POST data received]'; } print $buffer; exit;
Installation instructions:
-
Copy the above code and save it with a plain text processor as file name PostDump.cgi or whatever makes sense to you (must have .cgi or .pl file name extension).
-
Upload the file to your server into a directory that can run Perl CGI scripts. Upload the file as plain text, not as binary text.
-
Give the file on the server 755 permissions.
This form may be used to test the above CGI script. Change the action= URL to the script where it is installed.
<form method="post" action="/cgi-bin/PostDump.cgi"> <table cellpadding="3"> <tr> <td>Name:</td> <td><input type="text" name="name" style="width:200px;"></td> </tr><tr> <td>Email:</td> <td><input type="text" name="email" style="width:200px;"></td> </tr><tr> <td valign="top">Message:</td> <td><textarea name="message" style="width:200px; height:75px;"></textarea></td> </tr><tr> <td> </td> <td><input type="submit" style="width:200px;"></td> </tr> </table> </form>
Submit a form to the script to verify method="post" works in the directory where the script is installed and to see the raw POST data that was submitted.
Will Bontrager