📄 cgi1.htm
字号:
<html><!-- #BeginTemplate "/Templates/index.dwt" --><head><meta http-equiv=Content-Type content="text/html; charset=gb_2312-80"><title>ChinaPerl</title>
<LINK rel=stylesheet href=mystyle.css type=text/css>
</head><body>
<table border=0 cellspacing=0 bgcolor=#80FFFF width=100%>
<tr>
<td align=left rowspan=2 width=150>
<div align="center"><img src=image/perl.gif height=85 width="85"></div>
</td>
<td align=center><img src=image/perl.gif height=85 width="85"></td>
</tr><tr>
<td colspan=2 align=center> </td>
</tr></table>
<table border=0 width=100% height=400 cellspacing=0 cellpadding=0>
<tr>
<td width=20% valign=top bgcolor="#dddddd">
<table border=0 width=100% cellpadding=0><tr><td width=5%></td>
<td width=95%>
<p align=center>Perl 5教程<br>
<a target=_blank href=http://flamephoenix.126.com>by flamephoenix</a><a href="http://perl.yesky.net"><br>
<font color="red">修订 by RNY<br>
</font></a>2000-08-30</p>
<p align=center><a href="index.htm">目录</a></p>
<p align=center>第一部分 Perl语言</p>
<p><a href=perl1.htm>第一章 概述</a></p>
<p><a href=perl2.htm>第二章 简单变量</a></p>
<p><a href=perl3.htm>第三章 操作符</a></p>
<p><a href=perl4.htm>第四章 列表和数组变量</a></p>
<p><a href=perl5.htm>第五章 文件读写</a></p>
<p><a href=perl6.htm>第六章 模式匹配</a></p>
<p><a href=perl7.htm>第七章 控制结构</a></p>
<p><a href=perl8.htm>第八章 子程序</a></p>
<p><a href=perl9.htm>第九章 关联数组(哈希表)</a></p>
<p><a href=perl10.htm>第十章 格式化输出</a></p>
<p><a href=perl11.htm>第十一章 文件系统</a></p>
<p><a href=perl12.htm>第十二章 引用(指针)</a></p>
<p><a href=perl13.htm>第十三章 面向对象编程</a></p>
<p><a href=perl14.htm>第十四章 包和模块</a></p>
<p><a href=func.htm>附录一 函数集</a></p>
<p align=center>第二部分 Perl的CGI应用</p>
<p><a href=cgi1.htm>第一章 cgilib例</a></p>
<p><a href=cgi2.htm>第二章 动态创建图像</a></p>
<p><a href=cgi3.htm>第三章 计数器的编写方法</a></p>
<p><a href=cgi4.htm>第四章 Web Server设置</a></p>
第五章、...<br></td></tr></table></td>
<td width=80% valign=top>
<div align="center"></div>
<table border=0 width=100% cellpadding=0>
<tr bgcolor="#00FF80">
<td colspan="2">
<div align="center"> Perl教程 | <a href="perl5manual.zip">下载全文</a>
| <a target=_blank href=http://www.turbolinux.com.cn/cgi-bin/linux/wwwthreads.pl?action=list&Board=perl>Perl论坛</a>
| <a href="http://perl.yesky.net">推荐站点</a> | 关于我们 </div>
</td>
</tr>
<tr>
<td colspan="2"><!-- #BeginEditable "body" -->
<p align=center>第一章 cgilib例(未定稿)</p>
<p align=center><a target=_blank href=http://flamephoenix.126.com>by
flamephoenix</a></p>
一个简单的读取并处理表格请求数据的cgilib.pl例子:<br>
<br>
#!/usr/bin/perl<br>
<br>
sub readGetData{<br>
<b># 指定局部变量queryString用以保存和传递函数的参数</b><br>
local(*queryString) = @_ if @_;<br>
<b># 读取环境变量QUERY_STRING的值赋给变量$queryString</b><br>
$queryString = $ENV{"QUERY_STRING"};<br>
return 1;<br>
}<br>
<br>
sub readPostData{<br>
local(*queryString)=@_ if @_;<br>
local($contentLength);<br>
<b># 读取环境变量CONTENT_LENGTH的值</b><br>
$contentLength = $ENV{"CONTENT_LENGTH"};<br>
<b># 检查是否有数据</b><br>
if($contentLength){<br>
<b># 从设备STDIN读取contentLength长度的字符赋给$queryString</b><br>
read(STDIN,$queryString,$contentLength);<br>
}<br>
return 1;<br>
}<br>
<br>
sub readData{<br>
local(*queryString) = @_ if @_;<br>
<b># 读取环境变量REQUEST_METHOD</b><br>
$requestType=$ENV{"REQUEST_METHOD"};<br>
<br>
<b># 如果请求方式为GET则使用函数readGetData</b><br>
<b># 否则如果请求方式为POST则使用函数readPostData</b><br>
if($requestType eq "GET"){<br>
&readGetData(*queryString);<br>
}<br>
elsif($requestType eq "POST"){<br>
&readPostData(*queryString);<br>
}<br>
return 1;<br>
}<br>
<br>
sub DecodeData{<br>
local(*queryString)= @_;<br>
<b># 把加号转换成空格</b><br>
$queryString=~s/\+/ /g;<br>
<b># 转换十六进制字符</b><br>
$queryString=~s/%(..)/pack("c",hex($1))/ge;<br>
return 1;<br>
}<br>
<br>
sub parseData{<br>
local(*queryString,*formData) = @_ if @_;<br>
local($key,$value,$curString,@tmpArray);<br>
<br>
<b># 以&为分隔符把字符串转换成键-值对</b><br>
@tmpArray = split(/&/,$queryString);<br>
<br>
<b># 在数组@tmpArray内循环</b><br>
foreach $curString(@tmpArray){<br>
<b># 以=为分隔符分开键-值对</b><br>
($key,$value) = split(/=/,$curString);<br>
<b># 解码</b><br>
&DecodeData(*key);<br>
&DecodeData(*value);<br>
<b># 把键和值加到字典中</b><br>
$formData{$key}=$value;<br>
}<br>
return 1;<br>
}<br>
<br>
1;<br>
#end of file cgilib.pl<br>
<br>
<br>
<b>使用方法:</b><br>
<br>
要使用此库需含下列语句:<br>
#require "cgilib.pl";<br>
表格数据处理:<br>
%dataDict=();<br>
&readData(*data);<br>
&parseData(*data,dataDict);<br>
字典数据处理:<br>
while(($key,$value)=each(%dataDict)){<br>
print $key,"=",$value,"\n\n";<br>
}<br>
<br>
<p></p>
<p align=center><a href=cgi2.htm>下一章</a> <a href=index.htm>目录</a></p>
<p align=center> </p>
<!-- #EndEditable --></td>
</tr>
</table>
</td></tr></table></body><!-- #EndTemplate --></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -