how to pass a variable from an HTML form to a perl cgi script? -


i use html form pass variable perl cgi script can process variable, , print out on html page.

here html code: http://jsfiddle.net/wtvq5/.

here perl cgi script links html. here way (since uses less lines , more efficient).

#!/usr/bin/perl use warnings; use strict; use cgi qw( :standard); $query = cgi->new;  # process http request $user = $query->param('first_name');  # process $user... example: $foo = "foo"; $str = $user . $foo;  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 $str - second cgi program</h2>"; print "</body>"; print "</html>";  1; 

here's way read tutorial , makes more sense me:

#!/usr/bin/perl use warnings; use strict;  ($buffer, @pairs, $pair, $name, $value, %form); # read in text $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 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; } $user = $form{first_name};  # process $user... example: $foo = "foo"; $str = $user . $foo;  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 $str - second cgi program</h2>"; print "</body>"; print "</html>";  1; 

both of these don't work btw. when click on submit button on html page, links me script instead of passing variable, processing it, , printing out html page.

this line:

print "content-type:text/html\r\n\r\n"; 

should be:

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

or better:

print $query->header; 

also, ensure web server configurated cgi. and, if have enough time, use modern web application approach, there many frameworks may better cgi (dancer, mojolicious, ox, ...)


Comments