| 网站首页 | 资讯 | 影音 | 图片 | 论坛 | 模拟驾考 | 免费取名算命 | 瓷都工具 | 留言本 | 域名 | 瓷都商城 | 汇款 | 
|
资讯首页
|
瓷都德化
|
站内新闻
|
影视剧情
|
汽车世界
|
网络文摘
|
周易八卦
|
教程技巧
|
房产信息
|
您现在的位置: 瓷都热线|诚信中国:“一就是一”(1941.CN) >> 资讯 >> 教程技巧0 >> 网络编程 >> 正文 登录 注册
专 题 栏 目
  • 四川汶川8.0级强震
  • 机动车驾驶员考试资料
  • 高考试题及答案
  • 最 新 热 门
     德化又添3个地理标志证明
     [组图]期待!德化龙门湖
     [组图]德化:“绿色动脉
     [图文]德化:造莲花美景
     [图文]德化:编织小网格
     [图文]德化龙门滩龙门湖
     [图文]福建德化县美湖镇
     德化白瓷艺术展亮相深圳
     [组图]“世界瓷都·润养
     德化:前妻婚内举债近8万
    最 新 推 荐
     [组图]期待!德化龙门湖
     [组图]德化:“绿色动脉
     [图文]德化龙门滩龙门湖
     [图文]福建德化县美湖镇
     [组图]德化各种花卉相继
     [组图]福建德化九仙山迎
     [图文]德化石牛山惊现双
     [组图]千年古瓷都德化的
     [组图]警方连捣5传销窝点
     [组图]福建民俗博物馆办
    相 关 文 章
    没有相关资讯
    [组图]校园网中CGI环境的建立和应用         ★★★
    校园网中CGI环境的建立和应用
    作者:傅叔平 文章来源:成都教育学院 更新时间:2006-7-2 11:41:14
    【声明:转载此信息在于传递更多信息,其内容表达的观点并不代表本站立场,由这些信息所产生的一切后果本站不负任何责任。如果您对本信息有什么意见,欢迎和本站联系,谢谢!】http://CiDu.Net

    六     URL解码

      CGI程序必须从表单提交的URL解出各个变量的名和变量的值,才谈得上进一步对这些数据进行处理。现在给出一个解码的实例。用Perl写的解码程序代码如下:

    $string=$ENV{’QUERY_STRING’};
    @temp = split(/&/,$string); 
    @temp1 = split(/=/,@temp[0]); @temp2 = split(/=/,@temp[1]);
    $name = @temp1[1]; $email=@temp2[1];
    $cname = ToChnString($name);

      现在以前面的例子中提交的如下URL为例来说明该程序代码:
    http://cdce/cgi_perl/baoming.pl?name=%B8%B5%CA%E5%C6%BD&email=fsp@263.net
      我们的任务是将用户提交的姓名“傅叔平”和E-mail地址“fsp@263.net”从上述URL中分离出来。
      上面程序中的第一行是通过环境变量QUERY_STRING将 “?”后的字符串分离出来并存到变量$string中。此时$string的值是”name=%B8%B5%CA%E5%C6%BD&email=fsp@263.net”
      第二行是从$string中分离出“&”隔开的两个字符串。此时@temp的值是(”name=%B8%B5%CA%E5%C6%BD”,”email=fsp@263.net”);
      第三行的两个语句从@temp中的两个字符串中分离出“=”隔开的字符串。此时@temp1的值是(”name”,”%B8%B5%CA%E5%C6%BD”);@temp2的值是(” email ”,”fsp@263.net”);
      第四行的两个语句分别将temp1和temp2中的第二个字符串存到变量$name和$email中,此时$name的值为”%B8%B5%CA%E5%C6%BD”,$email的值为”fsp@263.net”。
      现在,用户从HTML表单提交的姓名和E-mail地址都得到了。但是,显然还有一个问题需要解决,那就是汉字信息还是十六进制代码的形式。为此,作者专门编写了一个汉字解码函数ToChnString来解决这个问题。在上面程序的最后一行,只需调用该函数即可将$name中的”%B8%B5%CA%E5%C6%BD”转换成汉字“傅叔平”。
      下面就是汉字解码函数ToChnString的代码:
    sub ToChnString
    {
       my($i)=0;
       my($chnstring)="";
       my($code0)=0; my($code1)=0;
       my($string)=@_;
       for($i=0;$i<length($string);)
       {
           if(substr($string,$i,1) eq ’%’)
           {
              $temp=(substr($string,$i+1,1).substr($string,$i+2,1));
              $chnstring.=chr(hex($temp));
              $i+=3;
           }
           else
           {
              $chnstring.=substr($string,$i,1);
              $i++;
           }
        }
        return($chnstring);
    }
      该函数的算法是:扫描源串,如果遇到百分符“%”就将其后的两个字节转换为汉字并连接到变量chnstring中,否则认为是非汉字字符,不变,照原样连接到变量chnstring中。最后返回chnstring的值。
      该函数没有处理其它用百分符“%”和十六进制编码表示的“=”、“&”、“%”等特殊的字符。因为在表单中提交的汉字串中这几个特殊字符用得极少,此处就简化了。如果表单中要提交这些字符,读者可对ToChnString函数进行修改,只要判断百分符后面是否是这几个字符的ASCII码就可与汉字分开处理了。//by http://CiDu.Net/

    七     返回信息到客户端

      在网络的交互性中,CGI程序还有一个基本的任务,就是要向客户端返回表单提交后的处理结果等信息。这些信息要显示到客户端屏幕上的浏览器窗口中。我们可以在CGI程序中通过标准输出手段按HTML的规范输出信息,即可达到在客户端的浏览器窗口中显示信息的目的。下面举一个简单的Perl程序例子,该例在客户端的浏览器窗口中显示“祝贺你,你已报名成功!”的信息:
    #! e:\perl\bin\
    print"Content-type:text/html\n\n";
    print”<html>”;
    print”<head>”;
    print"<title>报名结果</title>";
    print”</head>”;
    print”<body>”;
    print"<br><br>祝贺你,你已报名成功!<br>";
    print"</body>";
    print”</html>”;
      上面程序在服务器端执行,它相当于在客户端执行了如下HTML代码:
    <html>
    <head>
    <title>报名结果</title>
    </head>
    <body>
    <br><br>祝贺你,你已报名成功!<br>
    </body>
    </html>
      注意上述Perl程序的前两行:
      第一行:
        #! e:\perl\bin\
      注明以下的行是一个Perl程序而不是shell程序。一般都要将这行作为Perl源程序的第一行,同时也告之了Perl的可执行文件所在的目录。//by http://CiDu.Net/

      第二行:
        print"Content-type:text/html\n\n";
      CGI程序产生的输出由两部分组成:MIME头信息和实际的信息。两部分之间以一个空行分开。MIME头信息"Content-type:text/html\n\n"表示输出HTML源代码给Web服务器。请注意任何MIME头信息后必须有一个空行(所以这一个语句末用了两个换行符)。一旦发送这个MIME头信息给Web服务器后,Web浏览器将认为随后的文本输出是HTML源代码。//by http://CiDu.Net/

      用此方法产生的HTML源代码中可以使用任何HTML结构,如超级链接、图像、表单等等。也就是说,我们可以在CGI程序中动态地产生HTML源代码输出,这样就很容易实现服务器端的CGI程序与客户端的用户的交互性。  

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


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

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