PHP 編寫簡單的投票調查程序

最新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>&nbsp;";
        /**
         * 輸出條形碼圖
         */
        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

相關文章
相關標籤/搜索