站长工具|电影频道|广告合作

广告也精彩

您当前的位置:站长资源网网络学院网络编程CGI专区 → 文章内容

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

  • [作者:佚名  |  来源:赛酷建站  |  发布时间:2008-2-14 14:09:33  |  收藏本文 ] 【
当使用表单的时候,收集在表单的信息给发送给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

action= +10%

log = /usr/staff/mas/log

tag (1) = one

tag (2) = two

tag (3) = three

tag (4) =


文章评论

评论内容只代表网友观点,与本站立场无关! 查看更多评论