黑龙江省牡丹江市儿童医院内科 张建华
随着网络的普及,越来越多的网站增设了各种实时交互功能,如网上调查、时事论坛、聊天室、留言板等。下面介绍一个使用
vb编写CGI脚本
程序的实例,使你轻松拥有自己的留言板。
一、 基本概念
1.什么是CGI
CGI是Common Gate Interface(通用网关接口)的缩写,它运行在Web服务器上,提供同客户端浏览器界面的接口。通过CGI可以使Web服务器执行一些外部程序,并将外部
程序所产生的结果返回给Web浏览器。
CGI程序由两部分组成,一部分是超文本页面(html),就是客户端在浏览器中看到的交互式的表单(如调查表和留言板的界面);另一部分是运行在服务器上的
程序(通过点击页面上的“提交”按钮激活)。其基本的交互过程如下:
1) Web浏览器在接到客户端对CGI
程序的请求后,首先把要传送的数据(客户输入)进行编码,然后提交给服务器;
2) 服务器调用CGI
程序,对输入数据进行相关的解码处理,并把处理后的结果写入指定的输出文件;
3) 服务器读取输出文件并把最终数据发送到客户端,使用户可以在浏览器中看到
程序执行的结果。
2.数据的提交方式
如果从客户端向服务器传送的数据量不是很多,即小于1024字节,则可以使用“GET”传输方式,命令的使用方法为:在客户端浏览器的交互式表单的源码中加入如下一行代码
<Form method ="GET" action ="/cgi-bin/guest.exe">
当使用这种方法时,CGI
程序从环境变量QUERY_STRING中获取数据(即URL的问号“?”之后的那一部分数据)。
如果要通过CGI
程序传送的数据超过了1024字节(URL的最大长度限制),例如论坛中的“帖子”,则要使用“POST”的传输方法。
3.浏览器的编码方式
Web浏览器对客户端的输入信息有统一的编码格式:
1) 用“=”连接提交表单中各元素的Name和Value属性,即以“名称=值”的形式进行编码;
2) 用“&”连接表单中不同的输入项目,例如:“Name=王哲&Email=wangzhes@netease.com”;
3) 若Value属性中存放的数据含有空格,则空格被转换成“+”,如“王 哲”被转换为“王+哲”;
4) 对URL和Web系统的保留字符编码成十六进制数形式,即%HH。
CGI程序在使用这些数据前必须对它们进行解码,即将数据还原成用户在Web页面上输入时的形式。由于Web系统将汉字当作特殊字符对待,一个汉字被浏览器编码成四位十六进制数(例如%D5%C5),因此在CGI
程序中还要对汉字进行一些特殊的解码处理。
二、编制CGI
程序了解了上述CGI的一些基本特征后,我们就可以着手编制自己的留言板脚本程序了。
1. 页面设置
首先要新建两个超文本(html)文档,可分别命名为guestbook.htm和databook.htm,其中的guestbook.htm为客户在浏览器中看到的交互式表单页面,其源代码如下:
<html><head><title>留言板</title></head>
<body><center><h2>请留下您的建议</h2>
<Form method ="GET" action ="/cgi-bin/guest.exe">
您的名字:<input type =text name =name size=33><br>
您的Email:<input type =text name =email size=32><br>
您的主页地址: <input type =text name =URL size=28 value ="http:// " ><br>
您所在的城市: <input type =text name =city size=27><br><br>
留言内容: <br><textarea name =content COLS=60 ROWS=4></textarea><p>
<input type =submit value="提交"> <input type =reset value="重写">