日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁(yè)面

一個(gè)容易的PHP投票程序

一個(gè)容易的PHP投票程序

更新時(shí)間:2019-05-30 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

分析:
我們利用一個(gè)文件(data.dat)來(lái)存儲(chǔ)投票欄目.每個(gè)欄目占據(jù)一行.
這樣一來(lái),便可隨意加入和減去想要投票的欄目.

我們?cè)倮靡粋(gè)文件(votes.dat)來(lái)存儲(chǔ)我們的投票結(jié)果.
并紀(jì)錄最近一位投票者的IP地址,簡(jiǎn)單的防止一人多投.

所以,您應(yīng)該在該程序目錄下自行建立兩個(gè)文件data.dat和votes.dat

程序運(yùn)行過(guò)程部分

程序運(yùn)行時(shí)應(yīng)該先有一個(gè)投票的HTML表單,等待投票.
當(dāng)有人在HTML表單上投票時(shí),判斷它的IP是否為最近一位投票者的IP,
如果此人剛剛投過(guò)票,則兩個(gè)值應(yīng)該相等,顯示"您已投過(guò)票了,謝謝您的參與!"  
如果此人沒(méi)投過(guò)票,則兩個(gè)值不等,將它的投票寫入文件(votes.dat)  
(這里得到投票者的IP方法是:Web客戶機(jī)在對(duì)服務(wù)器發(fā)送請(qǐng)求時(shí)需要提供一個(gè)表識(shí),
這個(gè)表識(shí)就存儲(chǔ)在環(huán)境變量REMOTE_ADDR里,我們引用它就可以了.)

最后是顯示投票結(jié)果,通常我們是以"條形圖表+百分?jǐn)?shù)"來(lái)顯示投票情況.
所以,我們要選擇一個(gè)顏色單一的矩形圖形,以適應(yīng)橫向縮放的要求.  

--------------------------------------------------------------------------------

程序代碼部分 可下載程序代碼

  

  //投票欄目存儲(chǔ)文件,您可更改文件名
$data="data.dat";  
//投票結(jié)果儲(chǔ)存文件  
$votes="votes.dat";

//用以顯示投票結(jié)果比例的圖形文件名圖形文件名,  
//用單一顏色的矩形較好,方便投票結(jié)果橫向縮放,  
//自行上傳到本程序目錄下  
$path_img="vote.gif";

//投票標(biāo)題
$poll_name="您喜歡我的哪個(gè)欄目?";  


// 以下部分不需改動(dòng) //  


//打開投票欄目文件,并以數(shù)組的形式將全部?jī)?nèi)容存在變量$dataf中備用  
$dataf=file($data);  
if ($go !=1)

{  
//顯示投票程序表單  
echo "<font color=red><i>$poll_name</i></font><br>n";  
echo "<form method=post>";  
for ($i=0; $i<=count($dataf)-1; $i++)  

{  
echo "<input type=radio name="vote" value="$i"> $dataf[$i]<br>n"; }  

echo "<input type=hidden name=go value=1>";  
echo "<p><input type=Submit value=投票>";  
echo "</form>";  
echo "<a href='vote.php?result=1&go=1'>查看結(jié)果</a>";  

}  

else  

{  
// $go==1 表示有人投票, // 現(xiàn)在將投票情況以另外一種方式從文件中讀出 $file_votes=fopen($votes, "r");  
$line_votes=fgets($file_votes, 255);  
fclose($file_votes);

// 并將數(shù)據(jù)按指定的字串切開,再將字串傳回到陣列變量中  
$single_vote=explode("|", $line_votes);  

//準(zhǔn)備寫入投票結(jié)果  
if ($result!=1)  

{  
//檢查IP地址是否重復(fù)  
$file_votes=file($votes, "r");  
if ($REMOTE_ADDR == $file_votes[1])  

{  
echo "<center><font color=red>您已投過(guò)票了,謝謝您的參與! </font>    </center>";
exit;
}

//如果IP不重復(fù),則執(zhí)行以下程序  
$ficdest=fopen($votes, "w");  
for ($i=0; $i<=count($dataf)-1; $i++)

{  
//判斷投了那一個(gè)欄目  
if ($i == $vote)  

{  
$single_vote[$i]+=1;
}  

//將數(shù)據(jù)寫回文件  
fputs($ficdest, "$single_vote[$i]|");  

}  


//寫入投票者IP  
fputs($ficdest, "n$REMOTE_ADDR");  
fclose($ficdest);
$result=1; //投票成功

}  


//寫入投票結(jié)果后并顯示投票結(jié)果  
if ($result==1)  

{ echo "<table cellpadding=10>";  
for ($i=0; $i<=count($dataf)-1; $i++)  

{  
//取得投票總數(shù)
$tot_votes+=$single_vote[$i];  
}  

for ($i=0; $i<=count($dataf)-1; $i++)  

{  
//計(jì)算百分比  
$stat[$i]=$single_vote[$i]/$tot_votes*100;  
echo "<tr><td><li><font face=Verdana size=2>";  
echo "$dataf[$i]</font></td><td align=left><font face=Verdana       size=2>";  
echo "<img src="$path_img" height=10 width=$stat[$i] align=middle> ";  
//輸出百分?jǐn)?shù) printf("%.1f", "$stat[$i]");  
echo "%</font></td><td align=center><font face=Verdana size=2>"; //輸出本欄目投票數(shù)  
echo "$single_vote[$i]</font>"; echo "</td></tr>";  
}  

echo "</table><p>";  
echo "<font face=Verdana size=2>總投票數(shù):$tot_votes </font>";  
}

}

?>  

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 国产免费福利体检区久久 | 老司机成人影院 | 久久久久久久亚洲精品一区 | 国产精品日韩欧美一区二区三区 | 99国产精品热久久久久久夜夜嗨 | 日韩欧美亚洲综合久久99e | www夜夜操| 亚洲国产天堂久久综合2261144 | 爱草免费视频 | 欧美一级成人一区二区三区 | 永久国产| 私人毛片免费高清影视院 | 国产玖玖玖精品视频 | 国产麻豆91在线 | 波多结衣一区二区三区 | 亚洲精品一二三四区 | 综合久久 五十路 二区 | www国产91| 国产成人精品无缓存在线播放 | 欧美激情一区二区三区在线播放 | 亚洲国产精品日韩在线观看 | 97超级碰碰碰视频在线视频观看 | 亚洲另类在线观看 | 久久久精品日本一区二区三区 | 高清 国产 日韩 欧美 | 色噜噜噜噜噜在线观看网站 | 美女拍拍拍免费视频网站 | 久久道 | 日日操夜夜操天天操 | 欧美日韩在线视频不卡一区二区三区 | 欧美蜜桃臀在线观看一区 | 91资源在线 | 午夜影院日韩 | 97久视频精品视频在线老司机 | 国产亚洲精品久久久久久牛牛 | 在线国产视频观看 | 久久中文在线 | 女人18毛片a级毛片免费看一 | 乱人伦中文字幕在线看 | 亚洲天天做夜夜做天天欢人人 | 91短视频网站 |