PHP オンライン アンケート システム これはシンプルな投票プログラムで、PHP を学んだばかりの友人にとって非常に優れた入門プログラムです。ここで紹介しますので、友達の参考になれば幸いです。 本システムは、HTML調査フォームを含むsurvey.htm、調査機能を実装するsurvey.php、調査項目を記録するdata.txt、調査結果を記録するsurvey.txtの4つのファイルで構成されています。 data.txt と Survey.txt をそれぞれメモ帳を使用して作成し、プログラム ディレクトリに転送します。ファイル data.txt には、調査対象の項目が格納されます。各項目は 1 行を占める必要があり、内容のない空のファイルでもかまいません。 Survey.htm のコードは次のようになります。 > アンケート項目 1 アンケート項目 2 アンケート項目 3 アンケート項目 4 アンケート項目 5 < p> ;/p> 結果を表示 /html> data.txt ファイル内の調査項目の数と順序は、上記の調査項目と一致している必要があります。一致していないと、エラーが発生したり、調査結果が不正確になる可能性があります。同時に、調査結果を棒グラフで表示するには、色の異なる棒グラフをいくつか用意する必要があります。例: 0.gif、1.gif、2.gif、3.gif、4.gif など。以下は、アンケート機能を実装するための Survey.php コードです。 > $data=" data.txt"; $votes="survey.txt"; $dataf=file($data); /*調査プロジェクト ファイルの項目を読み取ります*/ $ file_votes=fopen($ votes, "r"); $line_votes=fgets($file_votes, 255); /*記録されたアンケート結果を読み出す*/ fclose($file_votes); =explode(" |", $line_votes); /* 指定された文字列に従ってデータを切り取り、その文字列を配列変数に戻します */ if ($result!=1) /*Ifアンケートは受け付けられました */ { $file_votes=file($votes, "r"); if ($REMOTE_ADDR == $file_votes[1]) /*同一人物かどうかを確認します*/ { echo "すでに投票しました。ご参加いただきありがとうございます!"; } /*IP が重複しない場合は次の手順を実行*/ $ficdest=fopen($votes, "w"); for ($i=0) ; $i<=count($dataf)-1; $i++) $single_vote[$i]+=1 / );/* //投票者の IP を書き込みます*/ 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++) { $imag=strval($i).".gif";/*統計結果を表示するために使用するバー画像を決定します*/ $stat [$ i]=$single_vote[$i]/$tot_votes*100; /*パーセンテージを計算します*/ $scla=$stat[$i]*5;/*棒グラフと倍率、ここではパーセンテージ 5 を示します表示するピクセル幅の倍*/ echo ""; echo "$dataf[$ i]< /font>"; echo " ";/*出力バーコード画像*/ printf("%.1f", "$stat[$i]"); echo "% td>< td align=center>"; /*この列の投票数を出力します*/ echo "$single_vote[$i]" ; echo ""; } echo ""; 2>総投票数: $tot_votes "; } ?> 注: 1 人が複数の投票を行うことを防ぐため、最新の投票者はここに記録されます IP方式で実装されており、WEBクライアントがサーバーにリクエストする際に環境変数REMOTE_ADDRに最新の投票のIPアドレスが格納されます私も初心者なのであるかもしれません。この記事に関するいくつかのコメント 多くの間違いや不十分な点は歓迎します。貴重なコメントや提案を歓迎します。ありがとう! 個人ホームページ: http://bamboo.oso.com.cn メール:wangyy@363.net