# Using POST Methods in Perl

A more reliable method of passing information to a CGI program is the POST method. This packages the information in exactly the same way as GET methods, but instead of sending it as a text string after a ? in the URL, it sends it as a separate message as a part of HTTP header. Web server provides this message to the CGI script in the form of the standard input.

Below is the Perl script called hello_post.cgi, to handle input given by the web browser. This script will handle GET as well as POST method.

#!/usr/bin/perl
local ($buffer, @pairs,$pair, $name,$value, %FORM);
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/; if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer,$ENV{'CONTENT_LENGTH'});
} else {
$buffer =$ENV{'QUERY_STRING'};
}
# Split information into name/value pairs
@pairs = split(/&/, $buffer); foreach$pair (@pairs) {
($name,$value) = split(/=/, $pair);$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C", hex($1))/eg;
$FORM{$name} = $value; }$first_name = $FORM{first_name};$last_name = $FORM{last_name}; print "Content-type:text/html\r\n\r\n"; print "<html>"; print "<head>"; print "<title>Hello - Second CGI Program</title>"; print "</head>"; print "<body>"; print "<h2>Hello$first_name \$last_name - Second CGI Program</h2>";
print "</body>";
print "</html>";
1;
Published on 02-Dec-2019 08:11:01