1. はじめに
「じょじょチョイス」はあなたのサイトにランキング形式の投票コーナーを提供する、アンケートフォーム・システムです。特定のテーマを持ったサイトなら、「じょじょチョイス」の設置によって大いに盛り上がることでしょう。訪問者の傾向を探る上でも、ぜひあなたのサイトに「じょじょチョイス」を!
2. 利用規定および免責
- このスクリプトの著作権は、じょじょ♪(以下、作者)にあります。
- いかなる理由があっても、作者の許可なく著作権表示を削除して公開することは禁止します。
- ただし、組み込まれている一部のライブラリの著作権に関しては、それぞれの作者にあります。
- このスクリプトは、作者の許可を得ることなく自由に改造し、自由に使用することができますが、改造の有無に関わらず他人に再配布することはできません。
- 商用利用にも制限はありませんが、それによっていかなる損害が発生しても、作者は一切責任を負いません。
- 利用の際は原則として、あなたのサイトにじょじょのWeb工房へのリンクを張ってください。
3. 特徴
じょじょチョイスの主な機能は以下のとおりです。
- プログラム構成がシンプルなため、スクリプトの設置や各種機能のカスタマイズが非常に簡単です。
- 強力なHTMLテンプレート機能によって自分好みのデザインに簡単に移行できます。
- 見栄え(HTML)と機能(スクリプト)が完全に分離しているため、バージョンアップしてもCGIの差し替えだけで対応できます。
- ボタン一発で投票でき、結果がリアルタイムにグラフ表示されるので、直感的でとても分かりやすいシステムです。
- 投票時にコメントを付けられ、他人のコメントを見ることもできます(JavaScript使用)。
- 同一ホストからの連続投票を禁止できます。
- 管理者パスワードによって、管理者は不本意な項目の削除、新規項目の追加、得票数の変更を自由に行うことができます。
- 悪戯防止機能によって、サーバが取得できるIPアドレスを監視し、ログに表示/非表示させることができます。
- GETメソッドを禁止することによって、imgタグなどによる外部からの攻撃を無効にします。
- Refererを監視することによって、外部からの書き込みを禁止することができます。
- ロックファイルを置くだけで、簡単に閲覧専用モードにすることができます。
- flockによる排他制御でログを強力に保護します(UNIX、WindowsNTのみ)。
- W3Cの推奨するXHTML1.1に準拠した正しい文法のHTMLソースを出力します。
4. 動作環境
(1) サーバ環境
- perl5が動作すること
- 排他制御にflockが使用できることを推奨(Windows95/98/Meの場合、ファイルロックが動作しません)
(2) クライアント環境
- Internet Explorer 5.x以上、Netscape 6.x以上を推奨
- CSS、JavaScriptの使用を推奨
5. 設置方法
(1) 本体の設置
- choice???.lzh もしくは choice???.zip を適当なツールで解凍します。
- choice.cgi の1行目を、プロバイダから指示された perl のパスに変更します。
- 下記の設置例にしたがって、すべてのファイルをASCIIモードでサーバに転送します。
- choice.cgi と同じ位置に log/ というディレクトリを作成します。
- 下記の設置例の[ ]内の指示にしたがって、各ファイル、ディレクトリのパーミッションを設定します。
- ブラウザのURL入力欄に http://〜/~user/choice/choice.cgi と入力し、アクセスします。
- 投票結果画面(最初は選択肢がありません)が表示されたことを確認したら、http://〜/~user/choice/index.html をアクセスします。
- 上記2つの結果が同じになれば設置完了です。訪問者には http://〜/~user/choice/index.html を公開します。
設置例
public_html/
|
|---- choice/ [777] ディレクトリ
| |
|---- log/ [777] ログ・ディレクトリ
|---- choice.cgi [755] じょじょチョイス本体
|---- choice.css [644] じょじょチョイス用スタイルシート
|---- choice.js [644] じょじょチョイス用JavaScriptファイル
|---- choice.dat [666] 投票データ
|---- ngword.dat [666] NGワードデータ
|---- index.html [666] 投票結果画面用HTMLファイル パーミッションに注意
|---- idxtmp.html [644] 投票結果画面用テンプレートファイル
|---- admtmp.html [644] 管理者編集画面用テンプレートファイル
|---- cmmtmp.html [644] コメント一覧画面用テンプレートファイル
|---- rectmp.html [644] 最近の投票一覧画面用テンプレートファイル
|---- jscm.pl [644] じょじょのWeb工房共通ライブラリ
|---- jcode.pl [644] 日本語ライブラリ
|
注意事項
- public_html/ は、プロバイダによっては html/ や WWW/ 、htdocs/ などの場合があります。
- CGIの設置できるディレクトリが cgi-bin/ などに限定されている場合は、choice/ をその配下に作成してください。
- CGIのパーミッションの設定は、プロバイダによって異なる場合があります。必ず確認して、プロバイダの指示を優先してください。
- jcode.pl は、歌代和正氏によるフリーウェアです。ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/
- ver.7.12以前からの移行の場合、log/ 配下をすべて削除してください。
(2) 初期データファイルの作成
choice.dat のフォーマットは以下のとおりです。
- ver.7.13 から通番が追加になりました。
- ver.7.15 から最後に ,0 が必要になりました(初期データ作成時のみ)。
(例) 通番(1〜の半角数字),項目名,票数(半角数字),0
1,アントニオ猪木,150,0
2,ジャイアント馬場,100,0
3,ヘイスタック・カルホーン,50,0
4,ブルーノ・サンマルチノ,0,0
- 通番は 1 以上の重複しない数字なら何でも結構です。連続している必要は特にありません。
- 表示の際は投票数が高い順に表示され、同票の場合は choice.dat 内で上にあるものが上に表示されます。
- 最後の ,0 は固定です。
- 空ファイルを転送しておき、後述の管理者編集モードを用いてブラウザから初期データを入力する方法もあります。(この方法を推奨)
(3) NGワードの設定
訪問者による不適切な選択肢の追加を禁止するため、NGワードを設定しておくことができます。この機能はCGI中での設定と、ngword.dat の内容によって動作します。ngword.dat の例は以下のとおりです。
CGI中で $NGmode = 0; とした場合
NG判定は部分一致で行われます。上記の ngword.dat の場合、「鈴木一郎」、「佐藤花子」、「山田太郎」などはすべてNG(エラー)になります。
CGI中で $NGmode = 1; とした場合
NG判定は完全一致で行われます。上記の ngword.dat の場合、「山田太郎」はNGになりますが、「鈴木一郎」、「佐藤花子」などはすべて新規項目として追加されます。
注意事項
- 後述の管理者編集モードでは、この設定は無効になります。
6. カスタマイズ
(1) スクリプトのカスタマイズ
必ず perl のパスだけを書き換えた状態で動作テストを行ってからカスタマイズを開始してください。最低限必要な項目以上に手を入れた状態では、設定ミスによる誤動作が起こった場合に原因を突き止めることが困難になります。
- 各種機能のカスタマイズ可能な項目は、choice.cgi 中の管理者設定項目の部分にあるコメントを参考にしてください。
- 海外サーバなど、時差のある環境の場合、jscm.pl の先頭に時差補正の設定個所があるので、そこを参照してください。
(2) テンプレートのカスタマイズ
テンプレートHTMLは、以下の要素を除き、自由に変更することが可能です。ただし、テンプレートの改造による表示のカスタマイズはHTMLやCGIについてある程度の知識を要求しますので、初心者の方は極端な変更を行うことは避けてください。
- フォーム部分 <form> 〜 </form> に含まれる各項目。
- %body%、%subject%などの、%で囲まれた部分(テンプレートによって置き換わる部分)。
7. 操作方法
(1) 管理者編集モードへの移行
- 画面下の[管理者用パスワード]欄に、choice.cgi 中で設定したパスワードを入力し、[管理者用]ボタンをクリックします。
(2) 不正な選択肢を削除する
- 管理者編集モードへ移行します。
- 削除したい選択肢の左にある削除用チェックボックスをクリックし、チェックマークを付けます。
- 一覧表の下にある管理者パスワード欄にパスワードを入力し、[修正]ボタンをクリックします。
(3) 不正な選択肢名を変更する
- 管理者編集モードへ移行します。
- 変更したい選択肢の右にある[変更後の選択肢]に正しい選択肢名を入力します。
- 一覧表の下にある管理者パスワード欄にパスワードを入力し、[修正]ボタンをクリックします。
※ 選択肢名を変更すると、今までのコメントを見ることができなくなります。
(4) 不正な投票の修正
- 管理者編集モードへ移行します。
- 得票数を修正したい項目の一番右にある[変更後の得票数]を修正し、希望する数値にします。
- 一覧表の下にある管理者パスワード欄にパスワードを入力し、[修正]ボタンをクリックします。
(5) 新規項目の追加
- 管理者編集モードへ移行します。
- 一覧表の下にある[新]のマークの付いた空欄の行に、追加したい選択肢と初期得票数を入力します。
- 一覧表の下にある管理者パスワード欄にパスワードを入力し、[修正]ボタンをクリックします。
※ 通常の一覧画面から追加を行った場合、初期得票数は1になります。
※ 削除、修正、追加はすべてを複数個ずつ組み合わせて同時に行うことができます。
(6) 閲覧専用モードにする
choice.cgi と同じ位置に lock というファイル(またはディレクトリ)を置くと、投票をできなくすることができます。旅行などで管理ができなくなる場合に使用すると便利です。
8. サポート
(1) うまく動かない場合
カスタマイズを行う前に、以下の項目を確認してください。
- ファイルの転送モード(ASCII/BIN)は正しく設定しましたか?
- choice.cgi の1行目にある perl のパスは正しく記述されていますか?
- それぞれのファイル、ディレクトリのパーミッションは正しく設定されていますか?
(2) それでも動かないときは
設置やカスタマイズに関する質問、不具合の報告などはじょじょのWeb工房にあるWeb相談室で行っています。特別な理由がある場合を除き、メールでの質問などはご遠慮ください。
なお、原則として大幅な改造を必要とする相談には応じられませんので、予めご了承ください。
同サイトのゲストブックでは、このスクリプトの感想や次回バージョンへのご要望なども受け付けております。
9. 謝辞
じょじょシリーズ作成にあたり、各方面の会議室などで有益な助言、提案、バグ報告を下さった方々に心から感謝いたします。
10. 更新履歴
2003/11/15 | ver.7.15 |
- 新規項目追加の際にNGワードを指定できるようにした。
- 新規追加項目に一定期間 New マークをつける機能を追加。
- このバージョンからデータファイルのフォーマットが若干変更になりましたが、従来のままでも構いません。
|
2003/11/08 | ver.7.14 |
- jscm.pl ver.1.03に対応。機能的には何の変更も無し。
|
2001/12/10 | ver.7.13 |
- 選択肢の名称を変更してもそれ以前のコメントが表示されように改善した。
- このバージョンからデータファイルのフォーマットが若干変更になりました。
|
2001/11/27 | ver.7.12 |
- 書き込みロックモードの際にコメント閲覧もできなくなっていたバグを修正した。
- 投票期間(最終日)を指定可能にし、それ以降の投票を受け付けないようにした。
|
2001/07/24 | ver.7.11 |
- コメントサイズの許容最大値を設定可能にした。
- 「最近の投票画面」で、最大表示ログ数を %max% で置換できるようにした。
- jscm.pl のバージョンチェックを追加。
|
2001/05/25 | ver.7.10 |
- 管理者モードを管理者編集画面に改め、選択肢名と得票数のブラウザからの修正機能を追加した。
|
2001/05/09 | ver.7.00 |
|
- バージョンアップは順次行われています。最新情報はじょじょのWeb工房にてご確認ください。
- 未公開のβ版をサンプルとして公開することがあります。
Presented by じょじょ♪ <webmaster@starwars.jp>
(http://www.starwars.jp/web/)