| 网站首页 | 资讯 | 影音 | 图片 | 论坛 | 模拟驾考 | 免费取名算命 | 瓷都工具 | 留言本 | 域名 | 瓷都商城 | 汇款 | 
您现在的位置: 瓷都热线|诚信中国:“一就是一”(1941.CN) >> 资讯 >> 教程技巧0 >> 网络编程 >> 正文 登录 注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
没有相关资讯
[组图]校园网中CGI环境的建立和应用         ★★★
校园网中CGI环境的建立和应用
作者:傅叔平 文章来源:成都教育学院 更新时间:2006-7-2 11:41:14
【声明:转载此信息在于传递更多信息,其内容表达的观点并不代表本站立场,由这些信息所产生的一切后果本站不负任何责任。如果您对本信息有什么意见,欢迎和本站联系,谢谢!】http://CiDu.Net

四     表单数据的提交与URL编码

  表单数据提交时,向服务器提出请求,该请求定义了程序按什么格式接受数据,这就是数据的传送方法。常用的两种方法是:GET和POST。
  用CGI程序处理表单时,一般指定“GET”方法,并在表单的ACTION属性值中指定CGI程序的URL地址。“GET”方法是把表单数据进行编码后附加到URL地址之后,然后传递给CGI程序进行处理的。
  URL 编码是浏览器用来将表单输入数据进行打包的一种格式。浏览器从表单中获取用户输入的数据,按“名/值”的格式将它们进行编码,作为URL的一部分发送给服务器。
  例如,如果我们要制作一个查询表单,然后利用雅虎的搜索引擎去进行搜索,其HTML代码如下:
<FORM METHOE=”GET” ACTION="http://cn.search.yahoo.com/search/cn">
   <INPUT TYPE=”TEXT” NAME=”p”>
   <INPUT TYPE=”SUBMIT” VALUE=”查询”>
</FORM>
  用户填写完搜索关键字后,单击“查询”按钮,浏览器就会把数据送至ACTION域中指定的URL地址进行查询。此处使用的是“GET”方法,数据被附加在URL地址的后面,因此yahoo的搜索程序是从URL中获得所有表单数据的。浏览器首先是在URL地址后面附加一个问号,然后是名字(此例中为“p”),接着是等号,最后是表单数据。例如,若要查询“abacus”这个词,提交的URL将是如下形式:
   http://cn.search.yahoo.com/search/cn?p=abacus
  yahoo的搜索引擎程序把单词“abacus”从URL中分离出来,然后在它的数据库去查找与“abacus”有关的内容。
  在校园网的应用中,表单中的URL往往就是校园网中Web服务器上的一个CGI程序及所在的目录。另外,如果表单提交的数据不只一项时,在URL附加的部分是用一个“&”符号将其隔开。还有,若提交的数据是汉字,则提交的数据是汉字内码且每个字节之间用“%”隔开。例如,有下面的表单,要求用户输入姓名和E-mail地址:
<form action="/cgi_perl/baoming.pl" method="get">
   你的姓名:<input type="text" name="name"><br>
   你的E-mail地址:<input type="text" name="email">
   <input type="submit" value="提交">
</form> 
  当用户输入的姓名是“傅叔平”、E-mail地址是“fsp@263.net”时,提交的URL将是如下的形式:
http://cdce/cgi_perl/baoming.pl?name=%B8%B5%CA%E5%C6%BD&email=fsp@263.net
  CGI程序将从中分离出用户的姓名和E-mail地址。其中的“%B8%B5%CA%E5%C6%BD”就是“傅叔平”三个汉字的代码(至于如何对汉字进行解码,本文将在后面讲述)。
  综上所述,URL编码遵循下列规则: 
  每对“名/值”由“&”分开;
  每对来自表单的“名”和“值”之间有“=”分开;
  非ASCII字符,如汉字及“=”、“&”、“%”等特殊的字符,用百分符“%”和十六进制编码表示;
  输入的空格以加号“+”表示。//by http://CiDu.Net/

五     环境变量

  HTML表单提交的数据传送到服务器后,CGI程序将从环境变量中来获取这些数据。常用的环境变量有如下一些:

SERVER_NAME:CGI脚本运行时的主机名和IP地址。
SERVER_SOFTWARE:你的服务器的类型如: CERN/3.0 或 NCSA/1.3。
GATEWAY_INTERFACE:运行的CGI版本. 对于UNIX服务器, 这是CGI/1.1。
SERVER_PROTOCOL:服务器运行的HTTP协议. 这里当是HTTP/1.0。
SERVER_PORT:服务器运行的TCP口,通常Web服务器是80。
REQUEST_METHOD:POST 或 GET, 取决于你的表单是怎样递交的。
HTTP_ACCEPT :浏览器能直接接收的Content-types, 可以有HTTP Accept header定义。
HTTP_USER_AGENT:递交表单的浏览器的名称、版本和其他平台性的附加信息。
PATH_INFO:附加的路径信息, 由浏览器通过GET方法发出。
PATH_TRANSLATED:在PATH_INFO中系统规定的路径信息。
SCRIPT_NAME:指向这个CGI脚本的路径, 是在URL中显示的(如, /cgi-bin/thescript)。
QUERY_STRING:脚本参数或者表单输入项(如果是用GET递交)。 QUERY_STRING 包含URL中问号后面的参数。
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递交的表单, 标准输入口的字节数。

  其中REQUEST_METHOD、QUERY_STRING、CONTENT_LENGTH是三个非常重要的变量,它们用来表示数据是如何送到CGI程序的。CGI程序要做的事情就是在这三个变量里取出数据,进行下一步的处理。
  例如,在Perl语言中,可以用以下语句从QUERY_STRING环境变量中得到URL编码。
     $string=$ENV{’QUERY_STRING’};

上一页  [1] [2] [3] [4] [5] 下一页


声明:以上信息资料大都是网上搜集而来,版权归作者,如有版权问题请留言告知我将马上改正。
文中所提到的各种观点只是原文观点,各种说法未经一一确认。并不代表本站认可此观点!!
资讯录入:admin    责任编辑:admin 
  • 上一篇资讯:

  • 下一篇资讯:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    点击数:
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)