城鄉投票原始碼php 乙個簡單的PHP投票程式原始碼

2021-10-19 06:04:43 字數 2426 閱讀 9187

乙個簡單的php投票程式原始碼

2021-01-23 10:04:50721

分析:我們利用乙個檔案(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"$poll_name

n";echo"";

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

echo"$dataf[$i]

n";}

echo"";

echo"

echo"";

echo"檢視結果";

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"

您已投過票了,謝謝您的參與!   

"; 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"";

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"

"; echo"$dataf[$i]

"; echo"";

//輸出百分數printf("%.1f","$stat[$i]");

echo"%";//輸出本欄目投票數

echo"$single_vote[$i]";echo"";

echo"

echo"總投票數:$tot_votes";

支援ctrl+enter提交

城鄉投票原始碼php 乙個簡單的PHP投票程式原始碼

乙個簡單的php投票程式原始碼 分析 我們利用乙個檔案 data.dat 來儲存投票欄目.每個欄目佔據一行.這樣一來,便可隨意加入和減去想要投票的欄目.我們再利用乙個檔案 votes.dat 來儲存我們的投票結果.並紀錄最近一位投票者的ip位址,簡單的防止一人多投.所以,您應該在該程式目錄下自行建立...

乙個簡單的殼原始碼

最近出差,偶有閒暇,寫了個簡單的殼,先宣告下,此殼部分內容借鑑看雪論壇某位大俠 現在搜尋找不到了,所以名字忘記了 名為shell的程式。主要實現有以個方面的功能 1,對text塊進行rc4加密,組織程式被ida等靜態工具分析。2,替換程式中的部分api函式,讓其執行到api函式時能跳到殼執行相關 後...

乙個簡單的殼原始碼

最近出差,偶有閒暇,寫了個簡單的殼,先宣告下,此殼部分內容借鑑看雪論壇某位大俠 現在搜尋找不到了,所以名字忘記了 名為shell的程式。主要實現有以個方面的功能 1,對text塊進行rc4加密,組織程式被ida等靜態工具分析。2,替換程式中的部分api函式,讓其執行到api函式時能跳到殼執行相關 後...