維克斯討論區
一個實例:調查表
對於本周的程序----選票程序,我不想多說什麼。我只是想在本程序內教給大家如何使用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/html\n\n";
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/html\n\n";
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 "$item\n";
print FILE "$vote\n";
close (FILE);
print"<h2>您是投票給$NAME{$FORM{'idol'}},謝謝您的選票!<h2>";
print"查詢<a href=\"/cgi-bin/vote.pl?command=viem\">投票結果系統</a>";
}
if($FORM{'command' [ 瀏覽完整內容請先註冊或登入會員。]
|