⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 perlcgi.htm

📁 是一个篮球游戏软件,可以自由设定时间,人数和游戏规则.
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta name="Microsoft Theme" content="bars 011"><title>CGI-Perl 实例起步</title></head><body background="barbkgde.gif" bgcolor="#FFFFFF" text="#000000" link="#666633"vlink="#999933" alink="#993300"><!--mstheme--></font><h2><!--mstheme--><font color="#000000"><font color="#FF0000">CGI-Perl 实例起步</font><!--mstheme--></font></h2><!--msthemeseparator--><p align="left"><img src="barrulee.gif"></p><!--mstheme--></font><h2><!--mstheme--><font color="#000000">网际网路_线上CGI教室<!--mstheme--></font></h2><form action="quiz.cgi" method="POST">  <p>为了让网友对CGI的写作有更深一层的认识本站特辟此单元来对CGI作实务上的解说,</p>  <p>第一部份我们先以下面的的CGI程式作例子,然後将其程式码逐条拿出来分析测试   , 以</p>  <p>达到立竿见影的效果</p><!--msthemeseparator-->  <p align="left"><img src="barrulee.gif"></p><!--mstheme-->  </font><h2><!--mstheme--><font color="#000000">线上测验篇<!--mstheme--></font></h2>  <p>第一题、现任的台北市长是谁?</p>  <p><input type="radio" name="1" value="A">陈水扁 <input type="radio" checked name="1"  value="B">黄大洲 <input type="radio" name="1" value="C">苏贞昌</p>  <p>第二题、 美国国庆日几月几日?</p>  <p><input type="radio" checked name="2" value="A">6月8日 <input type="radio" name="2"  value="B">9月4日 <input type="radio" name="2" value="C">7月4日</p>  <p>第叁题、请问有&quot;诗仙&quot;之称的诗人是?</p>  <p><input type="radio" checked name="3" value="A">杜甫 <input type="radio" name="3"  value="B">白居易 <input type="radio" name="3" value="C">李白</p>  <p>第四题、现任的台北县长是谁?</p>  <p><input type="radio" checked name="4" value="A">陈水扁 <input type="radio" name="4"  value="B">黄大洲 <input type="radio" name="4" value="C">苏贞昌 </p>  <p>第五题、&quot;Superstition&quot;代表下列何种含意?</p>  <p><input type="radio" checked name="5" value="A">自信 <input type="radio" name="5"  value="B">迷信 <input type="radio" name="5" value="C">守信</p>  <p><input type="submit" value="送出试卷"> <input type="reset" value="重新填写"> </p></form><p>当你测试完以上的表格CGI会作出以下的回应</p><!--msthemeseparator--><p align="left"><img src="barrulee.gif"></p><!--mstheme--></font><h1><!--mstheme--><font color="#000000"><font color="#0000FF">线上测验</font><!--mstheme--></font></h1><p><font color="#0000FF">你是第 19550 位的受测者 </font></p><p><font color="#0000FF">我是来自於:127.0.0.1<br>测试时间:1998年5月09日23时:03分:39秒 </font></p><p><font color="#0000FF">第 1 题你所答的答案是:A 标准答案:A<br>第 2 题你所答的答案是:A 标准答案:C<br>第 3 题你所答的答案是:C 标准答案:C<br>第 4 题你所答的答案是:B 标准答案:C<br>第 5 题你所答的答案是:B 标准答案:B<br></font></p><p><font color="#0000FF">您总共答对:3 题;答错:2 题 </font></p><p><font color="#0000FF">您总共得到:60 分</font></p><!--msthemeseparator--><p align="left"><img src="barrulee.gif"></p><p>也许你会想这是怎麽发生的呢?别忙 ! 让我们看看以下程式码解说後,琢磨之後相信你对</p><p>CGI的写作就不会再那麽的陌生了.</p><p># Tony lin Copyright 1998 all rights reserved </p><p># <a href="http://www.tpe.wownet.net/~g65617">http://www.tpe.wownet.net/~g65617</a> </p><p>$|=1; </p><p>print &quot;Content-type: text/html\n\n&quot;; </p><p>$today_date=&amp;get_date; </p><p>$counter=&quot;counter/counter.txt&quot;; </p><p><br>print &quot;&lt;TITLE&gt;The Scripts : WWWQuiz&lt;/TITLE&gt;&quot;;<br>print &quot;&lt;h1&gt;线上测验&lt;/h1&gt;&quot;;<br>print &quot;&lt;BODY BGCOLOR=&quot;#ffffff&quot;&gt;&quot;;<br></p><p>open(NUMBER,&quot;$counter&quot;) || die $!;<br>$number = &lt;NUMBER&gt;;<br>close(NUMBER); </p><p>$number++; </p><p>open(NUMBER,&quot;&gt;$counter&quot;) || die $!;<br>print NUMBER $number;<br>close(NUMBER);<br><br></p><p>print &quot;你是第 $number 位的受测者&lt;p&gt;&quot;; </p><p>print&quot;我是来自於:$ENV{'REMOTE_ADDR'}&lt;br&gt;&quot;;</p><p>print&quot;测试时间:$today_date &lt;p&gt;&quot;; </p><p>&amp;parse; </p><p>%ANSWER=(&quot;1&quot;,&quot;A&quot;,&quot;2&quot;,&quot;C&quot;,&quot;3&quot;,&quot;C&quot;,&quot;4&quot;,&quot;C&quot;,&quot;5&quot;,&quot;B&quot;);<br>$right=0;<br>$wrong=0; </p><p>foreach $Num (sort keys %FORM){<br>print &quot;第 $Num 题你所答的答案是:$FORM{$Num} &quot;;<br>print &quot;标准答案:$ANSWER{$Num}&lt;br&gt;&quot;; </p><p>if ($FORM{$Num} eq $ANSWER{$Num}){<br>$right++;<br>}else{$wrong++;}<br>}<br>$score=20*$right;<br>print &quot;&lt;p&gt;您总共答对:$right 题;答错:$wrong 题&lt;p&gt;&quot;;<br>print &quot;&lt;p&gt;您总共得到:$score 分&lt;p&gt;&quot;; </p><p>sub get_date<br>{ </p><p>local($date,$localtime);<br></p><p>($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); </p><p>if ($sec &lt; 10) {<br>$sec = &quot;0$sec&quot;;<br>}<br>if ($min &lt; 10) {<br>$min = &quot;0$min&quot;;<br>}<br>if ($hour &lt; 10) {<br>$hour = &quot;0$hour&quot;;<br>}<br>if ($mon &lt; 10) {<br>$mon = &quot;0$mon&quot;;<br>}<br>if ($mday &lt; 10) {<br>$mday = &quot;0$mday&quot;;<br>} </p><p>$month = ($mon + 1); </p><p>$localtime = &quot;19$year年$month月$mday日$hour时\:$min分\:$sec秒&quot;;<br>}<br><br></p><p>sub parse{ </p><p>read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); </p><p>@pairs = split(/&amp;/, $buffer); </p><p>foreach $pair (@pairs){<br>($name, $value) = split(/=/, $pair);<br>$value =~ tr/+/ /;<br>$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(&quot;C&quot;, hex($1))/eg;<br>$FORM{$name} = $value;<br>}<br>}</p><!--msthemeseparator--><p align="left"><img src="barrulee.gif"></p><p>研读完上面的原始程式码之後 , 你是不是有点懂又不太懂呢,或是雾煞煞呢 ?</p><p>不过没关系,以下的说明相信能让你茅塞顿开,而对它产生了一丁点的兴趣呢</p><p>现在我们就把上面的程式码穿肠剖肚的拿出来一一的加以说明吧 !</p><!--mstheme--></font><h4><!--mstheme--><font color="#000000"><font color="#0080FF">解说开始______________________________________________解说开始</font><!--mstheme--></font></h4><!--mstheme--></font><h5><!--mstheme--><font color="#000000"># Tony lin Copyright 1998 all rights reserved <!--mstheme--></font></h5><p>在perl语言里程式若遇到前面有 # 这样的标示时程式会将它当成注解而不执行它</p><p>$|=1;</p><p>将$|这个变数设成<font> 1</font>时,就会把缓冲区关毕,这样所输出的资料就不会存在缓冲区里</p><p>CGI在输出文字时才不会出错,一般我们都把 $| 设定成 1.</p><!--mstheme--></font><h4><!--mstheme--><font color="#000000"><font>print &quot;Content-type: text/html\n\n&quot;;</font> <!--mstheme--></font></h4><p>这一行是告诉CGI程式要以啥格式来输出表单填写後的的回应,因为我们是以HTML</p><p>的格式输出所以 Content-type:之後 就以 text/html 这个格式表示之,至於後面的\n\n又</p><p>是甚麽意思呢?那是代表换行的字元 .</p><p><font>$today_date=&amp;get_date; </font></p><p><font>$today_date 这是一个变数 </font>, 甚麽是变数呢 , 我们以下面的例子来作简单的说明 :</p><p>$Tony=&quot;林立弦&quot; 这时後 如果我们用 print 这个函数来输出 $Tony 这个变数时,那麽</p><p>程式码应该会写成这样 :</p><p>print $Tony ;</p><p>执行之後在你的<font color="#FF0000">浏 器</font>上就会出现 :</p><p>林立弦 这样的字眼</p><p>如果 $Tony=&quot;我想我已经了解变数的意义了&quot; 这时後 如果我们用 print 这个函数</p><p>来输出 $Tony 这个变数时,执行之後在你的浏 器上就会出现 :</p><p>我想我已经了解变数的意义了 这样的字眼</p><p>说到这里,我想各为网友已经了解变数的意义了吧 !</p><p><font>那麽 </font><font color="#FF0000">$today_date=&amp;get_date;</font><font> 又是甚麽涵意呢</font>?</p><p>首先我们来谈谈 <font color="#FF0000">&amp;get_date </font><font color="#000000">这个东东 ,它是从那里来的呢 ? 相信细心一点的网</font></p><p><font color="#000000">友大慨已经了解一二了,是的,它就是从以下这个副程式而来的</font></p><p><font color="#FF0000">sub get_date<br>{ </font></p><p><font color="#FF0000">local($localtime);<br></font></p><p><font color="#FF0000">($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); </font></p><p><font color="#FF0000">if ($sec &lt; 10) {<br>$sec = &quot;0$sec&quot;;<br>}<br>if ($min &lt; 10) {<br>$min = &quot;0$min&quot;;<br>}<br>if ($hour &lt; 10) {<br>$hour = &quot;0$hour&quot;;<br>}<br>if ($mon &lt; 10) {<br>$mon = &quot;0$mon&quot;;<br>}<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -