プログラムって難しいものだって思ってる人は多いと思うけど、実はプログラミング言語の進化で今は簡単になっているんだー。PHPを使えば簡単にプログラマーになれちゃうぞ。今回はPHPを使ったアンケートシステムを作ってみるよ!(バーチャル2ちゃんねらー裕子)
今回はアンケートを作ってみるよ。何とこのシステムがネトランに使われるといううわさもあり! 簡単なプログラムなんだけどそれだけでも有用になってしまうのがPHPのすごいところだよね。ネトランのアンケートのように、どの項目がよかったかを投票するシステムを作ってみるよ!
アンケートを作るに当たって今回は、
「setting.php」
(アンケートの項目の設定と、ログファイルの作成を行うプログラム)
「toukou.php」
(アンケートフォームからの投稿を受け取り加算するプログラム)
「view.php」
(アンケート結果を表示するプログラム。結果閲覧ユーザーはここへアクセスする)
「anketo.php」
(アンケートフォームを表示するプログラム。投稿ユーザーはここへアクセスする)
の4つのプログラムを作成するよ。難しいという人は、プログラムの理解よりも取りあえず設置して動かしてみよう。(設置方法は次回の更新で解説します)
まずはアンケートの項目の設定と、ログファイルの作成を行うプログラムsetting.phpを作成するね。設定部分によって、logフォルダの下にログファイルを自動的に作る機構も組み込むよ。
| ネトランアンケートシステム | ||
| 作者:ネトラン編集部 | ||
「アンケートを送信する」をクリックすることで投票があった値が加算される仕組みにする。設定を変更するだけで投票項目を簡単に変更できるようにする
投票結果を閲覧することも可能になっている。判読性の高いグラフ表示にしてみたぞ
|
(1) 配列へ値を入れる方法 $変数名["添え字"]="値"; (2) 配列とは? <?php $hensuu["1"]="aaa"; $hensuu["2"]="bbb"; $i="1"; //($iに1という文字が入っている) print $hensuu[$i]; print $hensuu[$i+1]; ?> 上記のプログラムを実行すると、 結果は aaabbb となる つまり添え字の部分に変数を入れても値を取り出すことができるのだ。 $hensuu["aa"]="hoge"; $hensuu[1]=3; $hensuu["abc"]="cde"; という配列のときのイメージ図がこれ↓ ![]() |

| setting.phpのソース |
<?php //項目の説明を指定 //添え字がアンケート番号 $anketo[0]["explain"] = "アンケートに関する感想をお知らせください"; $anketo[1]["explain"] = "この講座の難易度をお聞かせください"; $anketo[2]["explain"] = "面白かった企画をお選びください"; //選択項目を指定(1~最大値の投票) //$anketo[0]["explain"]に対応する回答項目 $anketo[0]["Item"][0] = "面白かった"; $anketo[0]["Item"][1] = "普通"; $anketo[0]["Item"][2] = "面白くなかった"; //$anketo[1]["explain"]に対応する回答項目 $anketo[1]["Item"][0] = "難しすぎる"; $anketo[1]["Item"][1] = "普通"; $anketo[1]["Item"][2] = "優しい"; //$anketo[2]["explain"]に対応する回答項目 $anketo[2]["Item"][0] = "コピペプログラミング"; $anketo[2]["Item"][1] = "ネットランナー"; //その項目のログファイルがあるかチェックしなければ作成 foreach($anketo as $key => $value){ foreach($value["Item"] as $item_number => $item_name){ //$anketo[0]["Item"][0]のログファイルが log/0_0.log //$anketo[1]["Item"][2]のログファイルが log/1_2.log といったファイル名になる。 $log_file_name = "log/".$key."_".$item_number.".log"; //ログファイルが存在するかをチェック if(!file_exists($log_file_name)){ //ファイル作成(書き込めるようにパーミッションも設定) touch($log_file_name); chmod($log_file_name,0666); //作成したログファイルに0という文字を書き込み $fp = fopen($log_file_name,'w'); flock($fp, LOCK_EX); fwrite($fp, "0"); flock($fp,LOCK_UN); fclose($fp); } } } ?> |
| <コード> | |||
|
$hensuu["aa"]="hoge"; $hensuu[1]=3; $hensuu["abc"]="cde"; foreach($hensuu as $key=>$value){
} 変数$keyと$valueの内容を表示せよという命令 |
上記のコードを実行すると左の図のような表示になる。foreachというのはタンスの引き出しの上から順番に引き出しに貼ってあるシールの名称と中身の値を順番に取り出しながらループする命令だ。すべて取り出し終わるとループから抜ける