[MyTools.NET / CGI / T-Vote 7]

◆ T-Vote Ver.7.01 説明書

(c) Takahiro Nishida 1999/8/1




■ about...




■ index


■ 機能

 様々な設定が可能な投票システムです。T-Vote Limit と同様に、「3時間に1票」というような投票制限を付けることができるようになりました。Ver.6 での問題点「管理がしにくい」「順位表の配色が変えられない」などの欠点を改善しました。また、投票率がグラフで見やすく表示されるようになりました。

 以下の特徴があります。 (は Ver.7 からの新機能。)

[index]


■ ソース

(ダウンロード後、ファイル名が "-cgi.txt"、"-html.txt"、"-tp.txt" となってるものを ".cgi"、".html"、".tp" に変更してください)

[index]


インストール方法

■ インストール

  1. ソースからtvote.cgijcode.pltp.htmltvadmin.tp、の四つのファイルをダウンロードする。
    ※ ダウンロード方法はソースをダウンロードするを参照。

  2. tvote.cgi ファイルの最上部のPerlのパスを正しく設定する。
    ※ 詳しくはPerlのパスを設定するを参照。
  3. tvote.cgiの上部にある「変数設定部」の以下の変数を編集する。

    ※注1 tvote.cgi と同じディレクトリに入れる場合は、$basedir = "."; のまま。
    ※注2 sjis以外に変更する場合は、全てのファイルをnkfなどでそのコードに変換してください。
    ※注3 "post" が使えないところでは "get" に変えてください
    ※注4 @ の前に必ず \ をつけて下さい。(例, t-nishida\@mvh.biglobe.ne.jp)

  4. tvote.cgijcode.plを、FTPのアスキーモードで転送する。パーミッションを705604にする。
    ※ FTPについてはプログラムをFTPで送るを参照。
    ※ パーミッションについてはパーミッションを設定するを参照。

    (telnetの場合)
    % chmod 705 tvote.cgi
    % chmod 604 jcode.pl

  5. $basedir で指定したディレクトリ($basedir=".";の場合は tvote.cgi と同じディレクトリ。以下同様。)に tvadmin.tpをFTPのアスキーモードで転送する。パーミッションを604にする。

    (telnetの場合)
    % chmod 604 tvadmin.tp

  6. ↑と同じディレクトリに lockdir というディレクトリを作成する。パーミッションを707にする。

    (telnetの場合)
    % mkdir lockdir
    % chmod 707 lockdir

  7. ブラウザからtvote.cgiにアクセスしてみる。
     → 「eventが指定されていません。」と表示されればOK。
       ※ 上のように表示されない場合、ブラウザでアクセスするを参照して問題を解決してください。

以上でインストール完了です。

[index]


■ 新しい投票イベントを作る

  1. イベントの名前を決める。使える文字は以下の通り:

    ここでは例として「vote1」とします。

    ※ 何の投票か想像しやすい名前をつけるとよいです。例えば、野球の投票ならbaseballなど。

  2. テンプレートの見本、tp.htmlをコピーし、vote1.htmlという名前に変える。
  3. vote1.htmlをメモ帳等のテキストエディタで開き、編集する。詳しい編集方法はファイルの中に書いてあります。
  4. vote1.htmlを $basedir で指定したディレクトリにFTPのアスキーモードで転送する。パーミッションを606にする。

    (telnetの場合)
    % chmod 606 vote1.html

  5. 以下の5つの空ファイルを作成し、$basedir で指定したディレクトリにFTPで転送する。パーミッションを606にする。
    ※ 空ファイルの作り方は、空ファイルの作り方を参照。

    ここの例の場合は、vote1.txt, vote1.com, vote1.rgt, vote1.log, allcom_vote1.html の5つになります。

  6. ブラウザからtvote.cgi?event=vote1にアクセスしてみる。
     → HTMLが表示されればOK。

[index]


■ 投票イベントを追加する

 新しい投票を設置したい場合、イベント名を以前使ったのとは別のものにして(例えば、前にvote1を使っていたらvote2等)、あとは新しい投票イベントを作ると同じようにやって下さい。

[index]


使い方

■ 管理ページへの移行

 管理ページから、項目の追加、修正、削除を行う「項目変更」、制限や順位表の配色を変更する「設定変更」の二つの作業ができます。管理ページへの移行方法は次の通り。

  1. 投票ページの最下部の「パスワード」の欄に、インストール方法の3で設定したパスワードを入れる。
  2. 行いたい作業に応じて「項目変更」「設定変更」のボタンを押す。(各々のボタンの内容は以下を参照。)

[index]


■ 管理:「項目変更」

 「管理用フォーム1:項目用」では、以下の作業をすることができます。(カッコ内)は必要な初期値。

 ※ 「項目名の修正」はできません。一度削除してから再度新規登録してください。

[index]


■ 管理:「設定変更」

 「管理用フォーム2:設定用」では、以下の設定をすることができます。(カッコ内)は初期値。

[index]


Note...

■ データファイルを手動で編集する

 「管理ページからいちいち項目を追加するのは面倒だ」という場合、データファイルを自分で編集することができます。手順は以下の通り。(インストールは完了しているものとします。)

(※ [Tab] … タブ(キーボードの一番左の列の上の方の "Tab" を押せば入力されます。)

  1. 新しい投票イベントを作る」に従って投票イベントを作成する。
  2. tvote.cgi?event=<イベント名> をブラウザで表示させる。
  3. FTPのアスキーモードで <イベント名>.txt をダウンロードする。
  4. ダウンロードした<イベント名>.txt をテキストエディタ(メモ帳など)で開く。
       → 「1[Tab]20[Tab]0[Tab]」という行が一行書き込まれている。
  5. 以下のように項目を書いていく。(太字の部分を新たに記入)

    [項目名][Tab][票数][Tab]

    ※ 票数の多い項目から順に書いて下さい。

    <編集例>
    1[Tab]20[Tab]0[Tab] … (← 最初から書いてある行)
    みかん[Tab]59[Tab]
    いちご[Tab]44[Tab]
    ぶどう[Tab]31[Tab]
    バナナ[Tab]27[Tab]
    メロン[Tab]5[Tab]

  6. 編集した <イベント名>.txt を保存し、元の場所にFTPのアスキーモードでアップロードする。

[index]


■ フォーム、順位表、コメント、ログの表示順を変更する方法

 テンプレート(.html)の下部を修正することによって、フォーム、順位表、投票権情報、コメント、ログの表示順を変更することができます。以下の4つの#CHK:xxxxx#という行を、表示したい順に並びかえて下さい。

 テンプレートに書く文字と、その位置に表示されるものの関係は次の通り。

[index]


■ 「投票制限」でできること、できないこと。

 T-Vote Ver.7.xx は「投票者が利用しているホスト(コンピュータ)のIPアドレス」を利用して投票制限をかけています。「IPアドレス」というのは簡単に言うと、インターネットに接続するマシンに与えられている固有のID番号のようなものです(正確にはちょっと違うのですが)。原則として、IPアドレスはマシン一台ごとに一つずつ与えられていて、世界中の他のマシンと重複することはありません。

 しかし実際には、各個人の持つパソコン毎に一つずつIPアドレスがつけられているわけではありません。モデムを利用してプロバイダに繋ぐダイヤルアップ接続の場合、プロバイダが管理しているIPアドレスの中で空いていたものが割り当てられます。従って、同じマシンでも接続する度にIPアドレスが変わるということは十分ありえます。また逆に、同じサーバーを利用している全く別の人が(時間差で)同じIPアドレスを使う可能性もあります。

 結論を言うと、IPアドレスを利用して(ダイヤルアップ接続を利用している)個人を特定することは厳密にはできません。制限の限度いっぱいに投票した後で一度電話を切り、すぐに繋ぎなおして、(運良く?)割り当てられたさっきとは違うIPアドレスで再度投票する、ということも考えられます。

 しかし、IPアドレスは違っても、ホスト名は似通っている場合が多いです。(tkrz15.provider.ne.jp とかの、数字部分だけが変更される、とか。)「最近のログ」には投票者のホスト名が記録されますので、それを見れば連続投票があった場合は大体判断がつきます。あとは票数を直すなり、該当する人に注意を促すなど、各自で対策を取ってください。

 これとは逆に、学校や会社などにある、常に接続されているコンピュータには、固定のIPアドレスが割り当てられている場合が多いです。この場合は、厳密な制限が可能です。さらに、Proxyサーバーを利用している環境では、相手の組織全体に対して制限がかかってしまうことがあります。

 このように、T-Vote Ver.7 の投票制限は非常に弱く、あいまいなものです。この性能を理解しながらお使い下さるようお願いします。

 ※ 厳密な投票を行うには、メールを手作業で集めるのが一番でしょう。面倒ですけど。

[index]


バージョンアップ

■ バージョン履歴

(99/7/14) 更新ミス修正
 99/7/9 にアップグレードした 7.01 ですが、間違えて版の古いものを置いてしまいました。7/9 〜 7/14の期間においてあった 7.01 は、下記の変更点のうち、「IE5でのグラフ表示の不具合」が直っていません。上記の期間にダウンロードされた方は、プログラム(tvote.cgi)をダウンロードしなおしてくださるようお願いします

(99/7/9) Ver.7.01
・管理ページから新規項目の追加が失敗するバグの修正。
IE5.XXでグラフ表示がおかしくなる(%の少ない項目が多い項目より長くなる)不具合を修正。

(99/7/9) 説明変更
 「手動で項目を編集する方法」を Ver.7 用に修正。

(99/6/22) 説明変更
 ファイルの自動生成が上手くいかないので「投票の設置」の5で空ファイルを置く過程を加える。

(99/6/13) Ver.7.00
 公開

[index]


■ 6.xx → 7.xx

 Ver.6.xx からは票数データのみ引き継ぐことが可能です。方法は以下の通り。

  1. インストール方法の1〜3の通りに作業を行う。(4つのファイルのダウンロード、パスの設定、変数の設定。)
  2. tvote.cgi を古いバージョン tvote.cgi の上に上書きでアップロードする。
  3. tvadmin.tp を $basedir の位置にアップロードし、パーミッションを604に設定する。
  4. tvote.cgi にブラウザからアクセスして、「event が指定されていません」と出るか確認する。
  5. 古いバージョンにあるイベント(<イベント名>.txtの数)を全てメモする。
  6. 1でダウンロードしたテンプレートファイル(tp.html)をコピーし、上でメモした全てのイベント名に対応する <イベント名>.html を作成する。それぞれをテキストエディタで開いて、デザインを適当に編集する。
  7. 6で作成した全ての <イベント名>.html を、古いバージョンの <イベント名>.html の上に上書きFTPする。
  8. それぞれのイベント名について、tvote.cgi?event=<イベント名>にアクセスしてみる。ちゃんと表示されればOK。

 ※ 一度目のアクセスでデータファイルが Ver.7 用に書き換えられます。バージョンダウンはできません。
 ※ 設定は初期値になっています。管理用フォームから適時変更してください。

[index]


[MyTools.NET / CGI / T-Vote 7]