ホームページ >php教程 >php手册 >シンプルな PHP 投票プログラムのソース コード

シンプルな PHP 投票プログラムのソース コード

WBOY
WBOYオリジナル
2016-06-13 12:32:481231ブラウズ

分析:
ファイル (data.dat) を使用して、各列が 1 行を占めます。
この方法で、投票する列を自由に追加および削除できます。次に、ファイル (votes.dat) を使用して投票結果を保存します
そして、1 人が複数回投票することを防ぐために、最新の投票者の IP アドレスを記録します。
そのため、それを自分で作成する必要があります。プログラム ディレクトリ内 2 つのファイル data.dat と votes.dat
プログラム実行プロセスの一部
プログラムが実行されると、最初に投票 HTML フォームが表示され、誰かが投票するのを待ちます。 HTML フォームで、その IP が最新の投票者の IP であるかどうかを確認します。
この人が投票したばかりの場合、2 つの値は等しく、「すでに投票しました。ありがとうございます」と表示されます。
この人が投票したばかりの場合、投票していない場合、2 つの値が等しくない場合は、その投票をファイル (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{
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 "
< font color=red>あなたはすでに投票しています、ご参加いただきありがとうございます!
";
exit;
}
// IP が重複しない場合は、次の手順を実行します
$ficdest=fopen($votes, "w ") ;
for ($i=0; $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 "
  • "; $i]
  • ";
    echo " ";
    //出力パーセンテージ printf("%.1f", "$stat[$i]");
    echo "%
    < ;/td>< td align=center>"; //この列の投票数を出力します
    echo "$single_vote[$i]
    " ; echo "

    "; 総投票数: $tot_votes ";
    }
    }
    ?>

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。