Perl 教程 之 Perl CGI编程 8
Perl CGI编程
什么是CGI
CGI 目前由NCSA维护,NCSA定义CGI如下:
CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口。
使用POST方法传递数据
使用POST方法向服务器传递数据是更安全可靠的,像一些敏感信息如用户密码等需要使用POST传输数据。
以下同样是 test.cgi ,它也可以处理浏览器提交的POST表单数据:
test.cgi 代码
!/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'};
}
读取 name/value 对信息
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
$name = $FORM{name};
$url = $FORM{url};
print "Content-type:text/html\r\n\r\n";
print "
print "";
print '';
print '';
print "";
print "";
print "
$name网址:$url
";print "";
print "";
1;
以下是一个通过HTML的表单使用GET方法向服务器发送两个数据,提交的服务器脚本同样是test.cgi文件,test.html 代码如下:
test.html 代码
<!DOCTYPE html>
站点名称:
站点 URL:
浏览器中,执行效果