关于我们 广告服务 社区论坛
设为首页 加入收藏

行业新闻
服 务 器
模版下载
建站指南
冲浪宝典
办公软件
网站运营
操作系统
QQ 专题
网页制作
安全防御
视频教程
网络编程
SEO专区
软件下载
图像设计
Cisco
网页特效
Wap 技术
联盟赚钱
网页素材
 首页 | 企业建站 | 网页制作 | 网站运营 | 网络编程 | 图像设计 | 冲浪宝典 | 操作系统 | SEO专区 | 联盟赚钱 | Cisco

欢迎来到e天下网络首页>>网络编程>>CGI>>正文|CGI教学:第一章 cgilib例

CGI教学:第一章 cgilib例

[ 来路:21kn.com    时间:2007-7-8 16:28:57    点击: ]

 

一个简单的读取并处理表格请求数据的cgilib.pl例子:

#!/usr/bin/perl
sub readGetData{
# 指定局部变量queryString用以保存和传递函数的参数
local(*queryString) = @_ if @_;
# 读取环境变量QUERY_STRING的值赋给变量
= { "QUERY_STRING"};
return 1;
}

sub readPostData{
local(*queryString)=@_ if @_;
local();
# 读取环境变量CONTENT_LENGTH的值
= { "CONTENT_LENGTH"};
# 检查是否有数据
if(){
# 从设备STDIN读取contentLength长度的字符赋给
read(STDIN,,);
}
return 1;
}

sub readData{
local(*queryString) = @_ if @_;
# 读取环境变量REQUEST_METHOD
={ "REQUEST_METHOD"};

# 如果请求方式为GET则使用函数readGetData
# 否则如果请求方式为POST则使用函数readPostData
if( eq "GET"){
&readGetData(*queryString);
}
elsif( eq "POST"){
&readPostData(*queryString);
}
return 1;
}

sub DecodeData{
local(*queryString)= @_;
# 把加号转换成空格
=~s/\+/ /g;
# 转换十六进制字符
=~s/%(..)/pack("c",hex($1))/ge;
return 1;
}

sub parseData{
local(*queryString,*formData) = @_ if @_;
local(,,,@tmpArray);

# 以&为分隔符把字符串转换成键-值对
@tmpArray = split(/&/,);

# 在数组@tmpArray内循环
foreach (@tmpArray){
# 以=为分隔符分开键-值对
(,) = split(/=/,);
# 解码
&DecodeData(*key);
&DecodeData(*value);
# 把键和值加到字典中
{ }=;
}
return 1;
}

1;
#end of file cgilib.pl

使用方法:

要使用此库需含下列语句:
#require "cgilib.pl";
表格数据处理:
%dataDict=();
&readData(*data);
&parseData(*data,dataDict);
字典数据处理:
while((,)=each(%dataDict)){
print ,"=",,"\n\n";
}

::::站长友情提示:多花一分钟学点什么都好::::

 

上一篇:CGI教学:第二章 动态创建图像  下一篇:利用CGI方式实现Web查询

 ::热点信息::

 

= = 免责声明 = =

① 欢迎转载我网所刊信息,请注明“来源:E天下网络”。
② 凡本网注明“来源:XXX(非E天下网络)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。
※联系方式:Airtofly@163.com

::推荐文章::

 

ASP教程:详细学习ASP的内置对象

::图像设计::

 

动态图片搜索家——GIF RUNN
软件搜索利器——FileFerret
实例说明构图要讲规律
Character Builder让你尽展靓
全景图速成者Cool360
三维模型速成工具——Canoma
剪贴专家SmartBoard 32
新世纪的图像处理利器——Ph
更多内容..

 

 

关于我们 广告服务 友情链接 合作伙伴 社区论坛 免责声明

Copyright © 2007   21kn.com Inc. All rights reserved.e天下网络工作室

网站白天客服QQ:26875416 (非24小时)  合作QQ:597004688    粤ICP备06026423号