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