| REMOTE_HOST |
递交脚本的主机名,这个值不能被设置. |
| REMOTE_ADDR |
递交脚本的主机IP地址. |
| REMOTE_USER |
递交脚本的用户名. 如果服务器的authentication被激活,这个值可以设置。 |
| REMOTE_IDENT |
如果Web服务器是在ident (一种确认用户连接你的协议)运行, 递交表单的系统也在运行ident, 这个变量就含有ident返回值. |
| CONTENT_TYPE |
如果表单是用POST递交, 这个值将是 application/x-www-form-urlencoded. 在上载文件的表单中, content-type 是个 multipart/form-data. |
| CONTENT_LENGTH |
对于用POST递交的表单, 标准输入口的字节数. |
表单输入的解码程序
目前有两个程序: 通用目的的uncgi, 和cgi-lib.pl, 这是个Perl库,用于perl编写的CGI脚本.
当然也有表单上载时可以解码的程序,很少。
uncgi
说明原码可以从 http://www.hyperion.com/~koreth/uncgi.html获得。
cgi-lib.pl
这是由Steve Brenner编写的, 帮助你管理输入. 他能从GET和POST获取输入并且放置在一个Perl列表或阵列中. 更新的版本也能处理来自表单的文件上传. 从这儿可以得到信息与原码 http://www.bio.cam.ac.uk/cgi-lib. 如果你决定用Perl语言处理你的表单输入,cgi-lib是个很好的库.
为了使用cgi-lib.pl,你通常要这样写:
#!/usr/lib/perl
require 'cgi-lib.pl';
cgi-lib中尽管有很多子程序, 最重要的是ReadParse子程. ReadParse 读取输入方便地将name/value储存在一个Perl阵列中. 在你的Perl脚本中通常是这样调用的:
&ReadParse(*in);
此例中,阵列名是in, 可以随便取名的.
在表单输入解码后, 你能读取和处理这个name/value,方法是象下面这样:
print $in{'theName'};这个将显示名字name是theName的值value.
如果你有多个用同样名字的name对, cgi-lib.pl用( )分隔多个名字. 这样可以正常处理你的脚本.
解码上传的文件输入
基于表单的文件上传需要不同的表单输入,有一些程序可以对其进行解码。
cgi-lib.pl 后来版本可以很好支持, 在http://www.bio.cam.ac.uk/cgi-lib/ 了解更多的情况.
另一个处理用Perl编写的CGI地址是 http://valine.ncsa.uiuc.edu/cgi_docs.html .
自己做
找专门书籍学习吧: ftp://ds.internic.net/rfc/rfc1867.txt.
非解剖的脚本头部
按照本书阐述,大多数情况可以正常操作,在一些情况下不是这样的,你可以翻阅说明书了解。
<ISINDEX> 脚本
为了在CGI中完成讨论组, 我们看看叫<ISINDEX>的搜索. 这是早期在浏览器中用来向服务器发出搜索关键字的办法,参看以前的资料。
总结