不错的一篇学习CGI脚本(脚本)

2019-10-01 15:43:31于海丽

在这本学习手册中,仅用两种语言编写CGI脚本: UNIX shell和 Perl语言. 这个shell是适合在任何相近的UNIX系统上运行并且容易学习, 但是处理复杂的情况就困难了. Perl, 就要用这个语言了, 它是免费的, 这个语言是稳定和强大的,类似C,但它也是较难学习的.

你的服务器设置正确了吗?

为了运行任何一个CGI脚本, 不管简单或复杂的,你的服务器必须设置成能够运行他们,必须放置在一个特定的目录,必须有一个依赖你服务器设定的文件扩展名.

如果你是租用服务器,就要是否允许运行CGI脚本.

如果你拥有自己的服务器,检查你的服务器说明书是怎样处理CGI脚本的.

如果你用的不是UNIX?

只好再找别的学习手册了。

解剖一个CGI脚本

如果你编写它很久,克服很多警告和配置,恭喜你,你已经会些CGI脚本,并且可以在你的网页上使用了. 在这一章,将学习脚本是怎样执行,你的服务器又是怎样与他们对话产生回应的。

输出头部

虽然你的CGI脚本可以让你做任何事情,但是脚本的输出还是必须有一个规定形式.

这个 "脚本输出" 意思是指你的脚本发回服务器的数据. 在UNIX系统中, 输出是发向标准输出, 服务器从那儿检测它. 在其他系统和服务器, 你的脚本输出也许不一样了.

这个头部是实际不是文本的一部分,是服务器与浏览器之间的信息协议,你实际看不到。

有三个类型的头部: Content-type, Location, 和Status. Content-type 最普遍的。

有关content-type解释可以见有关HTML的说明, 一个你可以发出的特定编码象这样:

Content-type: text/html
在这个例子中,输出数据的类型是text/html; 换句话说, 他是个HTML文件. 表1. 通用格式和content-types.
 
Format
Content-Type
HTML text/html
Text text/plain
GIF image/gif
JPEG image/jpeg
PostScript application/postscript
MPEG video/mpeg
注意content-type 后面必须跟一个空行. 如果你没有空行,服务器将无法搞清这个头部在哪里结束。

输出数据

你输出的数据应该符合你所规定的content-type; 如果content-type是text/html, 输出安置应该是在HTML. 如果content-type是image/gif, 输出应该是在一个二进制的GIF文件.
练习1: 小试试.
T这是个简单的输出日期的简单脚本,这个CGI脚本还检查看看我是否已经登陆到我的Web服务器,并且报告发现了什么(如在图4).

图4. 脚本的结果