ハンドル、コメントが入れられる投票CGIです。投票結果はグラフで表示されます。Cookieを使って、二重投票を禁止することができ、さらにCookieを拒否しているブラウザーからは投票できないようにしています。さらに同一の IP アドレスからの二重投稿も禁止することができますので、信憑性の高い投票結果を得ることができます。
管理者専用のメニューを用意しており、ログのメンテなどができます。投票のコメントは一覧表示で見ることができ、検索機能も充実しています。
サンプルでは、自動車メーカー人気投票を行っていますので、清き一票をどうぞ。
ダウンロードの前に、必ず、CGI 利用規定を良くお読みになり、同意したうえで、ご利用下さい。
CGIをダウンロードし、解凍してください。それぞれのファイルについて解説します。
| ファイル名 |
パーミッション1 |
パーミッション2 |
転送モード |
ファイルの機能 |
kiyoki/ |
変更不要 |
変更不要 |
|
本CGI用ディレクトリ |
kiyoki.cgi |
704 |
705 |
[ASCII] |
投票フォーム、投票結果表示用CGI |
kiyolist.cgi |
704 |
705 |
[ASCII] |
コメント一覧表示用CGI |
kiyoadmin.cgi |
704 |
705 |
[ASCII] |
管理者機能用CGI |
config.cgi |
変更不要 |
変更不要 |
[ASCII] |
設定ファイル |
jcode.pl |
変更不要 |
変更不要 |
[ASCII] |
日本語コード変換ライブラリー |
images/ |
変更不要 |
変更不要 |
|
グラフ用GIFファイル格納ディレクトリ |
graphbar.gif |
変更不要 |
変更不要 |
[BINARY] |
グラフ用GIFファイル |
logs/ |
変更不要 |
707 |
|
ログファイル格納ディレクトリ |
template/ |
変更不要 |
変更不要 |
|
テンプレートファイル格納ディレクトリ |
admin.html |
変更不要 |
変更不要 |
[ASCII] |
管理者メニュー用テンプレート |
confirm.html |
変更不要 |
変更不要 |
[ASCII] |
確認画面用テンプレート |
error.html |
変更不要 |
変更不要 |
[ASCII] |
エラー画面用テンプレート |
list.html |
変更不要 |
変更不要 |
[ASCII] |
コメント一覧用テンプレート |
vote.htm |
変更不要 |
変更不要 |
[ASCII] |
投票フォーム用テンプレート |
転送先
CGI ファイルと、HTMLファイルを何処に設置してもよいサーバの場合には、本 CGI を解凍したディレクトリ構成のまま、サーバへアップロードしてください。CGI ファイルは、専用のディレクトリ(cgi-bin等)に設置しなければいけないサーバ(WebARENA等)の場合には、images ディレクトリを除いたすべてのファイルを CGI 専用のディレクトリへアップロードしてください。images ディレクトリは、通常の HTML ファイル等ををアップロードする場所へアップロードしてください。
パーミッション
これらパーミッションは、あくまでも例です。お使いのプロバイダー、レンタルサーバ業者の指示に従ってください。
上表には、パーミッションの指定が 2 種類指定されております。CGI がオーナー権限で実行されるサーバをお使いの場合には、パーミッション1の設定を使ってください。CGI が ohter 権限で実行されるサーバをお使いの場合には、パーミッション2の設定を使ってください。
CGI がオーナー権限で実行されるか、other 権限で実行されるかは、お使いのプロバイダーもしくはレンタルサーバ業者に確認してください。おおむね、CGI ファイルのパーミッションが、704 でも動作する場合には、オーナー権限で実行されると考えても結構です。CGI ファイルのパーミッションが、705 もしくは 707 でないと動作しない場合には、other 権限で実行されているとお考えください。
「変更不要」と指定しているファイルは、サーバにアップロードするだけで OK です。あえてパーミッションを変更しないでください。
とりあえず、動かしてみましょう。以下の手順に従って、サンプルを動かしてみましょう。
- 1. Perlのパス設定
-
プロバイダーによって、Perlパスが異なります。デフォルトでは「#!/usr/local/bin/perl」と設定しております。プロバイダーの指示に従い、kiyoki.cgi, kiyoadmin.cgi, kiyolist.cgi の1行目を書き換えてください。
- 2. CGIの設定
-
config.cgi をテキストエディターで開いてください。すべて設定は、このファイルで指定します。ここではとりあえず動かしてみるだけですので、最小限の設定をご案内します。
- 管理者パスワードの設定
-
管理者メニューを表示する際に必要なパスワードの設定です。必ず変更してください。
$ADMINPASSWORD = 'password';
- グラフイメージファイルのURL
-
グラフ表示につかうGIFのURLを指定します。CGIファイルからの相対パスでも問題ありません。
$GRAPHIMAGEURL = './images/graphbar.gif';
- 3. サーバへアップロード
-
これで設定は完了ですので、サーバへアップロードしましょう。images ディレクトリ以外のすべてのファイルをASCIIモードで転送してください。images ディレクトリは、バイナリーモードで転送してください。
ホームページコンテンツとCGIのディレクトリが異なるプロバイダーをご利用の方は、images ディレクトリをホームページコンテンツ用のディレクトリへ、その他はCGI用のディレクトリへアップロードしてください。
転送が完了しましたら、kiyoki.cgi, kiyoadmin.cgi, kiyolist.cgi のパーミッションを「704」もしくは「705」にして下さい。また、other権限でCGIが実行されるサーバをご利用の場合には、ディレクトリ logs のパーミッションを「707」に変更して下さい。もし、お使いのプロバイダーでは異なるパーミッションを指定しているようでしたら、プロバイダーの指示に従ってください。
- 4. さぁ! 試験してみましょう
-
サーバへアップロードした kiyoki.cgi に、ブラウザーでアクセスしてみてください。フォームサンプル画面が表示されましたね。これでいろいろ試してみてください。機能の概要が分かってくるかと思います。投票を1度した後、kiyolist.cgi にブラウザーでアクセスしてみてください。先ほどの投票が表示されますね。さらに kiyoadmin.cgi にアクセスしてみてください。先ほど設定したパスワードを入れて、管理者用メニューを出してください。
いかがでしたか?ちゃんと動いたでしょうか。これからは、あなたの環境に合わせて、少しずつカスタマイズしていってください。次から、カスタマイズの方法をご案内します。
投票フォームの画面は、「vote.html」を編集することでカスタマイズすることができます。フォームは、通常どおり作成していただいて結構ですが、一部システム利用の記述があります。システム利用の記述を消したり、順番などを変更すると、正しく動作しなくなりますので、ご注意ください。また、テンプレートではスタイルシートを利用しています。headタグ内のスタイルの記述を消さないようにして下さい。
投票フォームは、サンプルでは、ラジオボタンですが、チェックボックス、ドロップダウンメニューでかまいません。ただし、inputタグ内で指定する name属性名は必ず「item」にして下さい。同様にハンドルのname属性名は「handle」、コメントのname属性名は「comment」としてください。それ以外のname属性名を指定しても動作しませんので、ご注意ください。
システム利用の記述は、以下の通りです。
| システム利用の記述 |
説明 |
| <!--sum--> |
投票総数が表示されます。不要なら削除してもかまいません。 |
| <!--graph--> |
投票結果がグラフで表示されます。見せたくない場合においても決して削除しないで下さい。結果のグラフを見せたくない倍には、「kiyoconfig.cgi」で設定してください。 |
<form method="POST" action="<!--cgiurl-->">
<!--hidden--> |
決して削除しないで下さい。 |
| <!--expire--> |
添付ファイルを付けたい場合には、name属性を「attachment」としてください。「attachment」と指定しないと、添付ファイルとしてみなしませんので、ご注意ください。 |
確認画面は、「confirm.html」を編集することでカスタマイズすることができます。テンプレートは、通常どおり作成していただいて結構ですが、一部システム利用の記述があります。システム利用の記述を消したり、順番などを変更すると、正しく動作しなくなりますので、ご注意ください。また、テンプレートではスタイルシートを利用しています。headタグ内のスタイルの記述を消さないようにして下さい。
システム利用の記述は、以下の通りです。
| システム利用の記述 |
説明 |
| <!--value--> |
投票で選択した項目が表示されます。 |
| <!--handle--> |
投票フォームで入力したハンドルが表示されます。 |
| <!--comment--> |
投票フォームで入力したコメントが表示されます。 |
<form method="POST" action="<!--cgiurl-->">
<!--hidden--> |
決して削除しないで下さい。 |
コメント一覧表示画面は、「list.html」を編集することでカスタマイズすることができます。テンプレートは、通常どおり作成していただいて結構ですが、一部システム利用の記述があります。システム利用の記述を消したり、順番などを変更すると、正しく動作しなくなりますので、ご注意ください。また、テンプレートではスタイルシートを利用しています。headタグ内のスタイルの記述を消さないようにして下さい。
システム利用の記述は、以下の通りです。
| システム利用の記述 |
説明 |
| <!--sum--> |
投票総数が表示されます。不要なら削除してもかまいません。 |
<!--formstart-->
<!--list-->
<br>
<!--deletebutton-->
<!--formend--> |
決して削除しないで下さい。 |
| <!--pre--> |
投票が1ページに入りきらない場合に表示される「前へ」ボタンが表示されます。 |
| <!--next--> |
投票が1ページに入りきらない場合に表示される「次へ」ボタンが表示されます。 |
| <!--search--> |
検索フォームが表示されます。 |
すべての機能設定、環境設定は、config.cgi で行います。すべて重要な設定項目ですので、もれなく説明を読んでいただき、お好みにあわせて設定してください。
my $ADMINPASSWORD = 'password';
my $GRAPHIMAGEURL = './images/graphbar.gif';
my $CONFIRMFLAG = 1;
my $MultiAnsFlag = 0;
my $IP_LOCK_SEC = 3600;
my $ExpireDate = '20100331235959';
my $ExpireErrMsg = '投票は終了しました。';
my $ResultPrintFlag = 1;
my $REDIRECTFLAG = 0;
my $REDIRECTURL = 'http://www.futomi.com';
my $GRAPHMAXLENGTH = 300;
my $GRAPHLINECOLOR1 = '#E6EAF3';
my $GRAPHLINECOLOR2 = '#EBE1E2';
my $MAXLISTNUM = 20;
my $HANDLEMAXLENGTH = 40;
my $COMMENTMAXLENGTH = 200;
my $CHECKHANDLE = 1;
my $CHECKCOMMENT = 1;
Ver 2.0 をご利用の方
kiyoki.cgi のみを上書きアップロードして下さい。
Ver 1.x をご利用の方
お手数ですが、再度、すべてをセットアップし直してください。
【Ver 2.0 → Ver 2.1】 2004/06/02
- 設定ファイル config.cgi にて、ResultPrintFlag を "0" に設定すると、管理者でもグラフが表示されなくなるバグを改修した。
【Ver 1.0 → Ver 2.0】 2004/05/12
- Cookie による不正投票防止機能に加え、IP アドレスによる防止機能を追加した。
- 一部の海外サーバで文字化けする現象が起こらないよう改善した。
- 機能追加、バグ改修をしやすいように、全面的にソースコードを書き直した。