免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5365 | 回复: 0

怎么使用CGI模块? [复制链接]

论坛徽章:
0
发表于 2001-11-16 18:21 |显示全部楼层
怎么使用CGI模块? use CGI;

以上的语句就可以使用(打开)CGI模块,但是这样不能提高整套程序性能,这个使用的是整个CGI模块,也就是说包含了所有的方法,很多方法大家根本就不会用,也用不着,把200多KB的东西载入内存,而且有100多KB都是无用的,可以想象这样带来的弊端就是程序的整体性能下降,当然在运行一些小程序或者在本机调试的时候看不出来,但是在搞一些大型工程的时候就很容易现形。在使用CGI模块的时候可以增加参数单独导出指定的方法和标记(关于方法和标记导出的机制大家有空可以看看Exporter这个模块,这里再解释一下标记和方法的关系,用最简单的话来说就是标记是一组方法,比如我们可以把A和B两种方法组成标记C,我们导出标记C的时候就等于导出了方法A和B,标记前面都有一个冒号,标记C的完整表示方式是:C,如果我们要导出CGI模块中的标记C的话,我们可以使用语句:

#==========[PERL]==========#
use CGI qw/:C/;

明白了?)。好了,说了这么多例子,我们返回现实中,CGI模块可以导出很多标记,其中最常见,也是最常用的是standard标记,理解了上面的概念当然用就会用:

#==========[PERL]==========#
use CGI qw/:standard/;

my $cgi = new CGI;

来导入CGI模块的标准方法(standard),第二行语句建立一个新的对象 $cgi,以后我们会用这个对象操作方法。既然我们已经会使用模块了,下面我们开始投入到应用中。



二,如果输出头(HEADER)信息?

头信息非常重要,其中有一项叫content-type,这个表示内容的类型和编码方式,比如HTML页面的头是text/html,而WAP的头一般就是text/vnd.wap.wml,我们一般在把PERL程序输出到浏览器的时候都会增加头的信息,否则WEB服务器会返回500错误,以前打印头的方式:

#==========[PERL]==========#
print "Content-Type:text/html\n\n";

现在使用CGI模块后:

#==========[PERL]==========#
print $cgi->;header("text/html; charset=gb2312" # 采用GB2312(简体中文)编码
print $cgi->;header("text/vnd.wap.wml" # 输出WAP的WML格式



三,如果获取表单参数?

大家晓得数据的来源一般是表单,以前要获取表单中的数据需要用read函数写一段解析参数和值的代码,使用了CGI模块后你就会觉得要从提交的表单获取值是多么的容易。下面我们介绍CGI模块中最常用的方法param,给这个方法一个表单中域的名称的参数,它返回给你该参数名的值,看下面的代码:

#==========[HTML]==========#
<form method=&quot;post&quot; action=&quot;FILE.PL&quot;>;
<input type=&quot;text&quot; name=&quot;YOUR_NAME&quot;>;
</form>;

假设我们表单中有一个叫YOUR_NAME的单行文本域,我们使用下面的PERL代码获取这个YOUR_NAME域的值:

#==========[PERL]==========#
my $value = $cgi->;param('YOUR_NAME');

如果我们在上面的YOUR_NAME域中填写值wac,那么这里的 $value 的值就等于wac。是不是非常容易?当然获取了值过后我们可以做一些操作,比如判断YOUR_NAME是否等于空,请使用下面的代码:

#==========[PERL]==========#
print &quot;你没有填写你的名字&quot; if ($value eq &quot;&quot;

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP