cgi学习简明教程


第六章: 调查表CGI/PERL学习

数据挖掘研究院

    对于本章的程序——选票程序,我不想多说什么。我只是想在本程序内教给大家如何 数据挖掘实验室

    使用perl语言或C语言如何处理字符串的实例。让我们先看看代码:

数据挖掘实验室

    页面文件——pote.html 数据挖掘研究院

    <HTML>

    <TITLE>投票程序</TITLE>

数据挖掘实验室

    <h1>投票程序</h1>

    <FORM METHOD="post" ACTION="/cgi-bin/vote.pl"> 数据挖掘工具

    一。你喜欢谁?<br>

    <input type="radio" name="idol" value="A" checked>张德陪<br>

数据挖掘研究院

    <input type="radio" name="idol" value="B">阿加西<br>

数据挖掘研究院

    <input type="radio" name="idol" value="C">桑普拉斯<br>

数据挖掘工具

    <input type="radio" name="idol" value="D">贝克<br> 数据挖掘交友

    <input type="radio" name="idol" value="D">顾懿<br> 数据挖掘交友

    <input type="submit" value="执行"> 数据挖掘论坛

    <input type="reset" value="取消"> 数据挖掘论坛

    </form> 数据挖掘研究院

    查询<a href="/cgi-bin/vote.pl?command=view">选举投票结果</a>

    </html> 数据挖掘论坛

    CGI程序:——vote.pl 数据挖掘实验室

    #!perl 数据挖掘实验室

    print"Content-type:text/htmlnn"; 数据挖掘实验室

    print"<titel>投票系统</title>"; 数据挖掘实验室

    if($ENV{"REQUEST_METHOD"}eq"POST"){ 数据挖掘论坛

    read(STDIN,$buffer,$ENV{"CONTENT_LENGTH"}); 数据挖掘交友

    }elsif($ENV{"REQUEST_METHOD"}eq"GET"){

数据挖掘实验室

    $buffer=$ENV{"QUERY_STIRNG"};

    } 数据挖掘研究院

    @pairs=split(/&/,$buffer); 数据挖掘实验室

    foreach $pair(@pairs){

数据挖掘实验室

    ($name,$value)=split(/=/,$pair);

    $value=~tr/+//;

    $value=~s/%([a-f A-F 0-9][a-f A-f 0-9])/pack("C",hex($1))/eg;

数据挖掘研究院

    $FORM{$name}=$value;}

数据挖掘实验室

    $filename="/vote.dat"; 数据挖掘研究院

    %NAME=("A","张德陪","B","阿加西","C","桑普拉斯","D","贝克","E","顾懿");

    if($ENV{"REQUEST_METHOD"}eq"POST"){

    print"Content-type:text/htmlnn"; 数据挖掘研究院

    print"<titel>投票系统</title>"; 数据挖掘研究院

    print"<h1>投票系统的例子</h1>";

    open(FILE,"<$filename")||die"不能打开文件,请和管理员联系n"; 数据挖掘交友

    for($i=0;$i<2;$i++){

数据挖掘交友

    $file[$i]=<FILE>;

数据挖掘交友

    $file[$i]=~s/n$//;

数据挖掘论坛

    }

    close(FILE); 数据挖掘论坛

    @item=split(/:/,$file[0]);

数据挖掘工具

    @vote=split(/:/,$file[1]);

数据挖掘工具

    for($i=0;$i<@item;$i++){ 数据挖掘交友

    if($FORM{"idol"}eq$item[$i]){

    $vote[$i]++; 数据挖掘论坛

    last; 数据挖掘实验室

    } 数据挖掘研究院

    } 数据挖掘工具

    open(FILE,">filename")||die"Can"t Open the file";

数据挖掘论坛

    $item=join(":",@item); 数据挖掘研究院

    $vote=join(":",@vote); 数据挖掘研究院

    pirnt FILE "$itemn";

数据挖掘论坛

    print FILE "$voten";

数据挖掘研究院

    close (FILE);

数据挖掘工具

    print"<h2>您是投票给$NAME{$FORM{"idol"}},谢谢您的选票!<h2>"; 数据挖掘交友

    print"查询<a href="/cgi-bin/vote.pl?command=viem">投票结果系统</a>"; 数据挖掘交友

    } 数据挖掘实验室

    if($FORM{"command"}eq"view"){

    print "HTTP/1.0 200n"; 数据挖掘论坛

    print "Content-type:text/htmlnn"; 数据挖掘论坛

    print"<title>投票结果</title>"; 数据挖掘研究院

    print"<h1>投票结果</h1>"; 数据挖掘论坛

    open (FILE,"$filename")||die"文件打开错误";

数据挖掘交友

    for($i=0;$i<2;$i++){

    $file[$i]=<FILE>;

    $file[$i]=~s/n$//; 数据挖掘论坛

    }

数据挖掘研究院

    close(FILE); 数据挖掘工具

    @item=split(/:/,$file[0]);

数据挖掘研究院

    @vote=split(/:/,$file[1]); 数据挖掘交友

    print"<table border=1>"; 数据挖掘交友

    for($i=0;$i<@item;$i++){ 数据挖掘实验室

    print"<tr><td>姓名</td><td>$NAME{$item[$i]}</td><td>票数</td>,td>$vote[$i] 数据挖掘研究院

    </td><tr>"; 数据挖掘研究院

    } 数据挖掘研究院

    print "</table>";

数据挖掘研究院

    }

数据挖掘论坛

    这个程序是要各位学习Perl的分解字符串的功能。在Perl中,字符串操作

    是非常简单的。 数据挖掘论坛

    我对几句重要语句做一个分析:

    if($ENV{"REQUEST_METHOD"}eq"POST"){ 数据挖掘工具

    read(STDIN,$buffer,$ENV{"CONTENT_LENGTH"}); 数据挖掘论坛

    }elsif($ENV{"REQUEST_METHOD"}eq"GET"){ 数据挖掘交友

    $buffer=$ENV{"QUERY_STIRNG"}; 数据挖掘交友

    } 数据挖掘交友

    这是一个非常常见的功能块,几乎所有的CGI程序都会用到它。它判断 数据挖掘论坛

    页面使用何种方式提交变量。如果是post,就从STDIN里把变量读出,存到

数据挖掘实验室

    变量buffer里。注意在perl里,变量是用$开头的。而$ENV{"CONTENT_LENGTH"}

数据挖掘实验室

    则是读出该变量的长度,请注意CONTENT_LENGTH是一个环境变量。第二个if则

数据挖掘实验室

    处理get情况,在get情况下,页面提交的信息是存放在环境变量QUERY_STIRNG中

    的。所以$buffer也就是页面提交的信息。环境变量REQUEST_METHOD表示方式,

    它的值是一个字符串,前面加上$ENV则表示读出该变量的值。 数据挖掘论坛

    @pairs=split(/&/,$buffer); 数据挖掘工具

    foreach $pair(@pairs){

    ($name,$value)=split(/=/,$pair);

数据挖掘交友

    $value=~tr/+//; 数据挖掘研究院

    $value=~s/%([a-f A-F 0-9][a-f A-f 0-9])/pack("C",hex($1))/eg;

    $FORM{$name}=$value;}

数据挖掘工具

    以上功能块是一个分解过程。页面信息的提交往往是以“名称=值”的形式, 数据挖掘交友

    比如本例子中就是以“idol=顾懿”这样的形式提交的,所以我们要去掉字符串中

数据挖掘论坛

    的"="等等信息,但同时要保留“idol”和"顾懿"之间的对应关系。$FORM{$name}

数据挖掘交友

    =$value做到这一点,这是一个关联数组。具体其中的语法,请各位自行查书。接 数据挖掘交友

    下来的就是文件的操作,但那已经不是本课的重点。所以就不多说了。 数据挖掘交友

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:cgi学习简明教程
下一篇:cgi学习简明教程
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • Perl 常用函数
  • Perl直接入门详尽指南
  • 用Perl生成随机密码
  • When perl is not quite fast enough
  • Perl简单模块指南
  • Perl DBI连接MySQL数据库
  • 我对 Catalyst 的理解和介绍
  • cgi学习简明教程
  • 我对 Catalyst 的理解和介绍
  • 如何使用strict和warnings
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
    数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静