当前位置:K88软件开发文章中心编程语言PerlPerl01 → 文章内容

Perl CGI编程

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-11 13:11:06

= 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 "<html>";print "<head>";print '<meta charset="utf-8">';print '<title>k88.net(k88.net)</title>';print "</head>";print "<body>";print "<h2>$name网址:$url</h2>";print "</body>";print "</html>";1;查看浏览器,输出结果如下:简单的表单实例:GET方法以下是一个通过HTML的表单使用GET方法向服务器发送两个数据,提交的服务器脚本同样是test.cgi文件,test.html 代码如下:test.html 文件代码<!DOCTYPE html><html><head><meta charset="utf-8"><title>k88.net(k88.net)</title></head><body><form action="/cgi-bin/test.cgi" method="get">站点名称:





<input type="text" name="name"> <br />站点 URL:





<input type="text" name="url" /><input type="submit" value="提交" /></form></body></html>浏览器中,执行效果如下所示:使用POST方法传递数据使用POST方法向服务器传递数据是更安全可靠的,像一些敏感信息如用户密码等需要使用POST传输数据。以下同样是 test.cgi ,它也可以处理浏览器提交的POST表单数据:





test.cgi 代码





#!/usr/bin/perllocal ($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 "<html>";print "<head>";print '<meta charset="utf-8">';print '<title>k88.net(k88.net)</title>';print "</head>";print "<body>";print "<h2>$name网址:$url</h2>";print "</body>";print "</html>";1;以下是一个通过HTML的表单使用GET方法向服务器发送两个数据,提交的服务器脚本同样是test.cgi文件,test.html 代码如下:test.html 代码<!DOCTYPE html><html><head><meta charset="utf-8"><title>k88.net(k88.net)</title></head><body><form action="/cgi-bin/test.cgi" method="post">站点名称:





<input type="text" name="name"> <br />站点 URL:





<input type="text" name="url" /><input type="submit" value="提交" /></form></body></html>浏览器中,执行效果如下所示:通过CGI程序传递checkbox数据checkbox用于提交一个或者多个选项数据,test.html 代码如下:test.html 代码<!DOCTYPE html><html><head><meta charset="utf-8"><title>k88.net(k88.net)</title></head><body><form action="/cgi-bin/test.cgi" method="POST" target="_blank"><input type="checkbox" name="k88" value="on" /> k88.net<input type="checkbox" name="google" value="on" /> Google<input type="submit" value="选择站点" /></form></body></html>以下为 test.cgi 文件的代码:test.cgi 代码





#!/usr/bin/perllocal ($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;}if( $FORM{k88} ){$k88_flag ="ON";}else{$k88_flag ="OFF";}if( $FORM{google} ){$google_flag ="ON";}else{$google_flag ="OFF";}print "Content-type:





text/html\r\n\r\n";print "<html>";print "<head>";print '<meta charset="utf-8">';print '<title>k88.net(k88.net)</title>';print "</head>";print "<body>";print "<h2> k88.net选中状态 :





$k88_flag</h2>";print "<h2> Google 选择状态 :





$google_flag</h2>";print "</body>";print "</html>";1;浏览器中,执行效果如下所示:通过CGI程序传递Radio数据Radio 只向服务器传递一个数据,test.html 代码如下:test.html 代码<!DOCTYPE html><html><head><meta charset="utf-8"><title>k88.net(k88.net)</title></head><body><form action="/cgi-bin/test.cgi" method="post" target="_blank"><input type="radio" name="site" value="k88" /> k88.net<input type="radio" name="site" value="google" /> Google<input type="submit" value="提交" /></form></body></html>test.cgi 脚本代码如下:test.cgi 代码





#!/usr/bin/perllocal ($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;}$site = $FORM{site};print "Content-type:





text/html\r\n\r\n";print "<html>";print "<head>";print '<meta charset="utf-8">';print '<title>k88.net(k88.net)</title>';print "</head>";print "<body>";print "<h2> 选择的网站 $site</h2>";print "</body>";print "</html>";1;浏览器中,执行效果如下所示:通过CGI程序传递 Textarea 数据Textarea 向服务器传递多行数据,test.html 代码如下:test.html 代码<!DOCTYPE html><html><head><meta charset="utf-8"><title>k88.net(k88.net)</title></head><body><form action="/cgi-bin/test.cgi" method="post" target="_blank"><textarea name="textcontent" cols="40" rows="4">在这里输入内容...</textarea><input type="submit" value="提交" /></form></body></html>test.cgi 脚本代码如下:test.cgi 代码





#!/usr/bin/perllocal ($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 $pa

上一页  [1] [2] [3]  下一页


Perl CGI编程