网络数据库教程 - 第五天
Richard Dice
速成教程
网站设计
HTML
JavaScript
样式表
动态HTML
XML
图形与字体
多媒体
Java
后端编程
浏览器
电子商务
相关资源
Web 入门
软件下载
免费资源
源码集锦
相关连接
关于网猴


 

 

 

 

 

第一页 必不可少的CGI.pm

在过去的几天里我们已经谈了许多重要的事项。当然谈得都不是太深入。今天我将用一个实例比较细致地阐述一下过去几天所学的概念。而且几天还会涉及一些新的问题。

在各种有关Perl CGI编程的讨论中常常会提到Lincoln Stein的CGI.pm 。总体来说,CGI.pm 所用的编程理念和我在本教程中所倡导的完全相反。

从一开始,我就在试图帮助你们建立互动、动态生成的网页。这也是嵌入式HTML编程的初衷,而且它也能使网站的编码和组织更简便快捷。

而CGI.pm的观点是将网络编程分离出来,它给你一种感觉仿佛你是在用CGI.pm搭建一个网页,例:


     #!/usr/bin/perl

     use CGI;

     $query = new CGI;

     

     print $query->header(),

           $query->start_html(-title=>'Made with CGI.pm'),

           'This is what I mean by ',

           $query->b('abstracted'),

           '.',

           $query->end_html();

     exit 0;
该程序的执行结果是一个简单的HTTP头,一个起始HTML块(包括一个<TITLE>),几行文字,以及标准的HTML结束块。注意所有这些都是用CGI的$query 对象以及与其相关的方法编制的:
     Content-type: text/html

     

     <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">

     <HTML><HEAD><TITLE>Made with CGI.pm</TITLE>

     </HEAD><BODY>This is what I mean by <B>abstracted</B>.</BODY></HTML>

我总是尽量避免使用这种编程方法,但是我也不得不承认这种方法有时候用起来很顺手。  
            

CGI.pm的优点不在于它的抽象性,而在于它所提供的工具。CGI.pm有一个非常强大的cookie处理器以及表单参数解码方法。

我们都了解表单,它是HTML,而且它具有很多用途。

作为一个网络程序员,表单是从用户处收集的只要方法。当一个用户点击递交(Submit)按钮时,浏览器将用户输入的信息打包编码然后发送给你的CGI程序进行处理。而CGI程序的职责就是要解包,解码和使用表单中的内容。

这个过程很烦琐,为什么不让CGI.pm帮你处理这些事情呢?表单参数可以用param方法提取:


    #!/usr/bin/perl

     #

     # BAR.cgi is a simple Perl CGI program using CGI.pm.

     #

     # A Web page with a form containing the FOO textarea

     # is meant to submit to BAR.cgi (pay attention to

     # the "param" method).

     #



     use CGI;

     $query = new CGI;

     

     print $query->header(),

           $query->start_html(-title=>'Test of the param method'),

           'The value of the FOO parameter is: ',

           $query->param('FOO'),

           $query->end_html();

     exit 0;

这就是用CGI.pm解决这个问题的方法。在以后的某些ePerl代码中我还将用到CGI.pm,但只是为了利用其param方法的优势。 >>

网络数据库教程
第一页 必不可少的CGI.pm
第二页 数据库转义序列
第三页 在Here-Document字符串内嵌入引用表达式
第四页 嵌入子程序
第五页
用SQL设置表单- selection.iphtml
第六页
CGI.pm - receive.iphtml处理表单结果

[第1天][第2天][第3天][第4天][第5天]

   

本栏目内容归Wired Digital Inc.所有,
任何单位或个人未经许可,不得擅自转载使用。 搜狐公司制作完成。