最新PHP 編寫簡單的投票調查程序php
如下是三零網爲你們整理的最新PHP 編寫簡單的投票調查程序的文章,但願你們可以喜歡!html
這是一個簡單的投票程序,對於剛學PHP和朋友來講是一個很不錯的入門程序。在這裏給你們介紹一下,但願能對朋友們有所幫助。數組
該系統是由如下四個文件組成的:有HTML調查表單的survey.htm,實現調查功能的survey.php,記錄調查項目的data.txt和記錄調查結果的survey.txt.其中data.txt和survey.txt咱們能夠用NOTEPAD分別建立之,並傳到程序目錄下。文件data.txt中存的是要進行調查的項目,注意每一個項目應占一行;而survey.txt則能夠是一個什麼內容也沒有的空文件。服務器
Survey.htm的代碼能夠如以下所示:
ide
<html> <head> <title>survey</title> </head> <body> <form method="POST" action="survey.php"> <p><input type="radio" value="0" name="vote">調查項目一</p> <p><input type="radio" name="vote" value="1">調查項目二</p> <p><input type="radio" name="vote" value="2">調查項目三</p> <p><input type="radio" name="vote" value="3">調查項目四</p> <p><input type="radio" name="vote" value="4">調查項目五</p> <p><input type="hidden" name="go" value="1"> <p><input type="submit" value="提交" name="B1"></p> <a href="survey.php?result=1">查看結果</a> </form> </body> </html>spa |
注意文件data.txt中的調查項目與上面的調查項目在個數和排列順序必須保持一致,不然會出錯或調查的結果不許確。同時爲了將調查結果顯示成條形圖形式,應該準備若干種不一樣顏色的條形圖片。如:0.gif,1.gif,2.gif,3.gif,4.gif等。orm
如下是實現調查功能的survey.php代碼:
htm
<?php $data = "data.txt"; $votes = "survey.txt"; $dataf = file($data); /** * 讀出調查項目文件中的項目 */ $file_votes = fopen($votes, "r"); $line_votes = fgets($file_votes, 255); /** * 讀出已經記錄的調查結果 */ fclose($file_votes); $single_vote = explode("|", $line_votes); /** * 並將數據按指定的字串切開,再將字串傳回到數組變量中 */ if ($result != 1)/** * 若是已經接受了調查 */ { $file_votes = file($votes, "r"); if ($REMOTE_ADDR == $file_votes[1])/** * 檢查是否是同一我的 */ { echo "<center><font color=red>您已投過票了,謝謝您的參與!</font></center>"; exit; } /** * 若是IP不重複,則執行如下程序 */ $ficdest = fopen($votes, "w"); for ($i = 0; $i <= count($dataf)-1; $i) { if ($i == $vote) { /** * 判斷選擇了哪一個項目 */ $single_vote[$i] = 1; } fputs($ficdest, "$single_vote[$i]|"); /** * 將數據寫回文件 */ } fputs($ficdest, "\n$REMOTE_ADDR"); /** * //寫入投票者IP */ fclose($ficdest); $result = 1; /** * 投票成功 */ } /** * 寫入投票結果後並顯示投票結果 */ if ($result == 1) { echo "<table cellpadding=10>"; for ($i = 0; $i <= count($dataf)-1; $i) { /** * 取得投票總數 */ $tot_votes = $single_vote[$i]; } for ($i = 0; $i <= count($dataf)-1; $i) { $imag = strval($i) . ".gif"; /** * 判斷用哪一種條形圖片來顯示統計結果 */ $stat[$i] = $single_vote[$i] / $tot_votes * 100; /** * 計算百分比 */ $scla = $stat[$i] * 5; /** * 條形圖和放大倍數,這裏是安百分數的5倍的相素的寬度來顯示的 */ 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=\"$imag\" height=20 width=$scla align=middle> "; /** * 輸出條形碼圖 */ printf("%.1f", "$stat[$i]"); echo "%</font></td><td align=center><font face=Verdana size=2>"; /** * 輸出本欄目投票數 */ echo "$single_vote[$i]</font>"; echo "</td></tr>"; } echo "</table><p>"; echo "<font face=Verdana size=2>總投票數:$tot_votes </font>"; } ?>圖片 |
說明:ci
在這裏爲了防止一人多投是採用記錄最近的一位投票者的IP的方法來實現的,而最近的一位投票的IP地址是WEB客戶機在對服務器發出請求時存儲在環境變量REMOTE_ADDR中的。
轉載來自:http://www.q3060.com/list3/list117/288.html