CGI教程-解码数据发送给CGI脚本

来源: 作者: 2007-11-22 出处:pcdog.com

ios  


解码数据发送给CGI脚本

  当使用表单的时候,收集在表单的信息给发送给CGI脚本用于处理。这个信息被放置在环境变量QUERY_STRING中。

  为了清除地将信息传递给环境变量QUERY_STRING,被修改锚标签的表单将被使用。在这个被修改的锚标签中,传递给环境变量QUERY_STRING的数据是在指示CGI脚本的URL之后附上的。字符”?”被用来分隔指定CGI脚本以及发送给脚本的数据的URL。比如:

<A HREF="/cgi-bin/script?name=Your+name&action=find"> Link </A>

其中数据"name=Your+name&action=find"被放置在环境变量QUERY_STRING中并且CGI脚本被执行。

  下面给出一个例子:由C++编写一个类,具体文件parse.h 和parse.cpp被用于在QUERY_STRING中提取个别的组件,其中的头文件t99_type.h在上节教程已经提到,它是包含了一些定义。具体代码如下:

//以下是parse.h文件

这个类的成员函数有:

方法

任务

Parse

设置将要解析的字符串

set

设置一个要解析的不同字符串

get_item

返回字符串有关的关键字作为参数传递,如果没有数据就返回NULL

get_item_n

返回字符串有关的关键字作为参数传递,如果没有数据就返回空字符串

当使用成员函数get_item和get_item_n的时候,可选的第二个参数指定哪个跟关键字有关的字符串被返回。这样就允许恢复附在同一关键字的信息。另外,返回的字符串将有以下一系列的替代物:

+将被转换成空格;

%HH将把十六进制的数转换为字符;

~user将被用户主目录的完整路径取代,这也只有在可选第三个参数为true的时候才可以。

下面举个例字,如果QUERY_STRING包含以下内容:

tag=one&name=mike&action=%2B10%25&tag=two&log=~mas/log&tag=three

那么以下的程序将被编译和运行:

结果它的输出为:

name = mike


更多内容请看PCdog.com--Fireworks教程  PPT教程  电脑入门教程专题
上一篇:CGI教程-ErrorDocument 指令
下一篇:Cgi入门教程之:12 建立log文件