<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      一個容易的PHP投票程序

      [摘要]分析: 我們利用一個文件(data.dat)來存儲投票欄目.每個欄目占據一行. 這樣一來,便可隨意加入和減去想要投票的欄目. 我們再利用一個文件(votes.dat)來存儲我們的投票結果. 并紀錄最...
      分析:
      我們利用一個文件(data.dat)來存儲投票欄目.每個欄目占據一行.
      這樣一來,便可隨意加入和減去想要投票的欄目.

      我們再利用一個文件(votes.dat)來存儲我們的投票結果.
      并紀錄最近一位投票者的IP地址,簡單的防止一人多投.

      所以,您應該在該程序目錄下自行建立兩個文件data.dat和votes.dat

      程序運行過程部分

      程序運行時應該先有一個投票的HTML表單,等待投票.
      當有人在HTML表單上投票時,判斷它的IP是否為最近一位投票者的IP,
      如果此人剛剛投過票,則兩個值應該相等,顯示"您已投過票了,謝謝您的參與!"  
      如果此人沒投過票,則兩個值不等,將它的投票寫入文件(votes.dat)  
      (這里得到投票者的IP方法是:Web客戶機在對服務器發送請求時需要提供一個表識,
      這個表識就存儲在環境變量REMOTE_ADDR里,我們引用它就可以了.)

      最后是顯示投票結果,通常我們是以"條形圖表+百分數"來顯示投票情況.
      所以,我們要選擇一個顏色單一的矩形圖形,以適應橫向縮放的要求.  

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

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

        

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

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

      //投票標題
      $poll_name="您喜歡我的哪個欄目?";  


      // 以下部分不需改動 //  


      //打開投票欄目文件,并以數組的形式將全部內容存在變量$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'>查看結果</a>";  

      }  

      else  

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

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

      //準備寫入投票結果  
      if ($result!=1)  

      {  
      //檢查IP地址是否重復  
      $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] ");  

      }  


      //寫入投票者IP  
      fputs($ficdest, "n$REMOTE_ADDR");  
      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++)  

      {  
      //計算百分比  
      $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> ";  
      //輸出百分數 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>";  
      }

      }

      ?>  


      日韩精品一区二区三区高清