金魚屋簡易投票システム ver.1.1.0
金魚屋の車輪の再開発シリーズ。
割合を小数点の指定桁数で四捨五入して表示するよう修正。
Latest Version
HISTORY
1.1.0 2008-03-11
- 割合を小数点の指定桁数で四捨五入して表示するよう修正。
1.0.1 2008-03-04
- Cookie 発行時に有効期限が正しく設定されないバグを修正
1.0.0 2008-03-03
- リリース
はじめに
「金魚屋簡易投票システム」とは
Web サイトによくある超単純な投票の機能を提供するシステムのこと。
投票データはCSV 形式で保存される。
クッキーを利用して連続投票を回避。
動作確認
- PHP Version 4.4.8
Archive Download
ファイル構成
./Kingyoya/SimpleVote.php
投票の保存と読み出し解析をするクラスファイル。
http://www.kingyoya.org/etudes/2008/SimpleVote-1.1.0/Kingyoya/SimpleVote.php.txt
./error_log.txt
エラーのログが記録されるテキストファイル。
./lock.txt
同時実行制御のためのロックファイル。
CSV の形式
- 投票先
- 投票元IP アドレス
- 投票日時
使い方
- 公開したい場所に上記のファイルを配置する。
- CSV やクラスファイルなどを隠したければ、見えないところに置いてスクリプトの定義を修正する。
- CSV ファイルとログファイルの書き込み権限をWeb サーバユーザに付与する。
- 適宜HTML を修正する。
表示するHTML を変えたい
index.php の147 行目以降を修正する。
'hoge' の投票割合を少数点2桁までで表示したい。
表示したい場所に次のように書く。
<?php echo $votor->rate('hoge', 2); ?>
少数点3桁以下を四捨五入した割合が表示される。
ログファイルの場所や名称を変えたら
index.php の56行目、定数 ERROR_LOG_FILE の値 "./error_log.txt" を変更する。
ロックファイルの場所や名称を変えたら
index.php の39行目、定数 LOCK_FILE の値 "./lock.txt" を変更する。
文字コードとか変更したい
15行目からの以下の記述を環境にあわせて変更する。
mb_language('Japanese'); mb_internal_encoding('utf8'); mb_http_output('utf8'); ob_start('mb_output_handler');
連続投票回避クッキーの有効期限を変更したい
index.php の49行目、定数 COOKIE_EXPIRE の値 24*60*60 を変更する。
define('COOKIE_NAME', 24*60*60);
値は発行日時からの秒数。上記の例ではちょうど1日。
ブラウザを閉じるまでだけ有効にしたい場合は、この定義を削除するか値を0にする。
フォームと結果を別々のURL で表示したい
入力値をもっと厳密に評価したい
好きにしてください。