主页 > 知识库 > 网络编程 > CGI/perl >

用10个Perl模块在Web表单和CGI程序中验证用户输入

来源: 作者: 发表于:2009-09-29 11:11  点击:
除非设计的网站非常非常简单,否则总会碰到需要用交互式表单收集用户信息的情况。这些表单有可能是简单的反馈表单,也有可能是复杂的注册或成员登录表单,还有可能是复杂的命令处理表单。虽然它们的形状和大小各有不同,但是,它们有一点是相同的:在它们提交

除非设计的网站非常非常简单,否则总会碰到需要用交互式表单收集用户信息的情况。这些表单有可能是简单的反馈表单,也有可能是复杂的注册或成员登录表单,还有可能是复杂的命令处理表单。虽然它们的形状和大小各有不同,但是,它们有一点是相同的:在它们提交信息之前,需要对表单中的信息进行验证,以确保信息无害。

表单构建和输入信息的验证是Web开发工作中的一个整体,因此有很多现成可用的代码可以完成这两个功能。如果你是个Perl 开发人员,则有个巨大的工具仓库,其名字为:Comprehensive Perl Archive Network (CPAN),它包含了数以百计的类,用于表单的生成、测试和处理。

本文中,我挑选出10个最有用功能最强大的模块(表 A),看看它们能为你的开发工作提供的内容和Idea,请尽情享用吧!

注意:可以直接从网络安装CPAN模块,其说明文档在下面的链接中:

http://www.cpan.org/misc/cpan-faq.html#How_install_Perl_modules.

表 A

程序包名称

描述

CGI.pm

此模块是现在可用的最大全特征CGI库,其功能非常强大。它为CGI脚本提供线形的和面向对象构架,它允许编程产生HTML标记和表单字段,检查POST和GET变量,设置和读cookies、sessions和外部环境变量的界面。

使用此模块产生表单和HTML标记,或者用于表单处理和编写脚本。

CGI::Ex::Validate

此模块应用了很多其他特征扩展了标准CGI输入验证器,这些特征包括:表单字段分组、基于分组的条件验证、扩展文件的验证规则和YAML支持。与其他验证器不同,它也支持用于数据完整性的客户端(JavaScript)验证程序的自动生成。

在相互关联验证规则的复杂表单中使用此模块,或者需要快速客户端验证时使用此模块。

Data::Validate

此模块为普通输入类型提供验证程序:例如email地址、信任卡号码、URL、日期时间、字符串类和数字类,还有其他更多内容。

使用此模块检测Web表单的输入信息,并且确保信息在“计算/保存”到文件或数据库之前进行验证。

CGI::Upload

此模块用于处理浏览器上HTTP文件上传。假设一个包含多个部分的提交表单,此模块可以从提交表单中获得文件名、文件大小和MIME类型信息,可以方便处理并发的“拷贝/移动/删除”操作。

在Web站点上使用此模块支持文件上传。

CGI::FormBuilder::Multi

此模块提供程序产生、验证和处理多页面Web表单。它支持所有的HTML表单输入类型,并且对于大多数的输入类型有内置的验证程序。Sessions用于在表单的不同页面上维护状态。

使用此模块简化在运行时产生和验证多页面Web表单。

CGI::Session

这个模块将session管理性能整合到CGI程序中,可以用于客户程序session的“维护状态”。它可以与DBI和文件驱动器一起用于数据存储,也具有内置调试能力。

在需要追踪Web站点上个人用户session程序中使用此模块,例如购物车系统和注册系统。

CGI::Auth

此模块为基本的Web注册/验证系统提供了构架。它使用存储在服务器上的session文件追踪用户注册,并且从自定义格式数据文件中读取验证信息。它也支持HTML模板,此模板用于创建定制的“登入/登出”屏幕。

使用此模块为Web程序快速创建注册系统。

CGI::Application::Mailform

此模块是个可重用系统,此系统可以用于将提交表单转换成email。它包括HTML模板,这些模板用于表单和表单提交屏幕,提交表单屏幕可以定制,以满足特殊需要。

使用此模块创建快速表单,此表单可以将其内容通过电子邮件发送到指定的容器。

Handel::Cart

此模块提供了面向对象框架用于创建和维护购物车内容。它包含内置方法进行添加和移除购物信息,更新货物的数量和价格,计算总价,获取以前保存的购物信息,并且将购物信息保存到数据库或外部存储系统。

使用此模块快速整合购物车系统和Web站点。

CGI::Test 

此模块为CGI程序提供了测试框架,允许在没有浏览器的情况下交互式运行程序。其关键特征支持session管理,使它可以模仿浏览器环境外的多页面处理事务。

使用此模块测试浏览器环境外的CGI程序。

    有帮助
    (9)
    81.8%
    没帮助
    (2)
    18.2%