CGIクイズの設置例
ーTakaQ2をニフティーに設置する方法ー
(最終更新:18.10.19)
※infoseekに設置する方法は
http://yoshi57.hp.infoseek.co.jp/takaq.setti.htm
にあります。
はじめに
クイズのホームページ(HP)巡りをしていると、三択クイズなどで、
回答者のメッセイジを入力したり、成績を管理できるものがあります。
自分でもこんなクイズを作りたいと思っても、CGIを初めから作るのは大変です。
そこで、出来上がっているフリーのCGIを自分のHPに設置しようと思いました。
フリーのCGI、TakaQ2をダウンロード(DL)してさて設置。
しかし、解説書を見てもニフティー(ニフ)に設置する場合にどうしたらいいかが
書いてないので先に進めない。webのQ&Aを見てもわからない。
そこで行き詰っていたら、
チャットで知り合いのくるっく氏が「どれどれ」と設置に挑戦。
そしてみごとに完成。私はくるっく氏から設置方法を教えてもらいました。
わかってしまえば簡単だけど、どうしてそうなるのかがわからん(笑)
ともあれ、そうして完成したのがnifty版「三択クイズ」。
(※18.10月にサイトを移動したので今はniftyにクイズを設置していません)
それから、クイズの更新を続けていましたが、ニフやTakaQ2のサイトに宣伝掲載したら、
色々な人が挑戦してくれたり、メッセイジを残してくれてうれしくなります。
CGIの設置自体は少し面倒かもしれません。
でも、重要な変更内容はほんの一部です。
これがわかれば誰でもが自分で設置できます。
そこで、ニフで設置する方法を掲載することにしました。
HPを持っていない人、HPを持っていてもあまり自信のない人は
私のサイトで解説があります。参考にして見てください。
http://yoshi57.hp.infoseek.co.jp/mokuji1.HPtyatto.htm
CGI設置の環境は、windows98SE(Meでも可)を使い、
ブラウザはインターネットエクスプローラー5.01、
転送ソフトFTPはFFFTP、プロバイダーはニフティー
の場合です。
必要なもの
TakaQ2、自分のHP、転送ソフト(ここでは、FFFTPを使用して解説します)
転送ソフト
フリーウェアーのffftpがお勧めです。
ビルダーのFTPソフトを使用すると、転送はできますが、
ファイルが壊れ易いらしく、知り合いがやってみて設置できませんでした。
ffftpについては、
http://yoshi57.hp.infoseek.co.jp/ffftp.kaisetu.htm
で解説してあります。
TakaQを手に入れる
My Tools NET http://www.mytools.net/#tool
に、色々なプログラムが紹介されています。
この中の ◆ My CGI-BIN Tools http://www.mytools.net/cgitools/index.html
ここで、TakaQ2を選択すると、TakaQ Ver.2.05 説明書が表示されます。
この解説書を印刷して手元に置きます。
ソースの項目の下にある、「全ファイルをまとめてダウンロード」をクリック。
「 quiz200.Izh 」 という圧縮ファイルがデスクトップに表示されます。
これをLhasaなどの解凍ソフトで解凍します。
(解凍ソフトがない、解凍方法が分からない場合は、最後述の※を参照)
デスクトップにquiz200のフォルダーが表示されます。

これをクリックすると、

上図のように、プログラムその他のファイルが表示されます。
ここからは、TakaQ Ver.2.05 説明書の「インストール方法」を見ながら、作業をします。
ファイルの中味を変更する時は、半角英数です。これに気を付けて下さい。
以下に、
説明書の「インストール方法」の中の、2.〜 9.までを取り上げて、解説します。
2.4つのcgiファイルの最上部のPerlのパスを正しく設定する。
(解説)
ここでいう4つのcgiファイルは、
tqindex-cgi.txt
tqquiz-cgi.txt
tqscore-cgi.txt
tqadmin-cgi.txt
これらのファイルを一つずつ開きます。
まず、tqindex-cgi.txtを開きます。

左上の #!/usr/local/bin/perl の部分が、「最上部のPerlのパス」です。
ニフティー(ニフ)の場合はこの表示でOK。
他の3つのcgiファイルも、#!/usr/local/bin/perl になっていることを確認します。
もし、違う記述になっている場合は、このように直して上書き保存します。
3.tqlib.pl の以下の変数を編集する。
(※ Ver.2.03以前はこれらの変数が各.cgiファイルに散在しています。)
※注1 データファイルを .cgiと同じ場所に置く場合は
$basedir="."; と書いて下さい。
※注2 post が禁止されているサーバーでは get に変更して下さい。
※注3 sjis以外に変更する場合は、
全てのプログラムをnkfなどでそのコードに変換してください。
※注4 @ の前に必ず \ を付けてください。(例) $email="nishida\@big.or.jp";
(解説)
ここはチョットややこしいんですが、
まず tqlib-pl.txt を開いて、赤字のように変更します。
# データファイルのディレクトリ
$basedir = "."; ⇒ $basedir = "../homepage";
# CGIプログラムの拡張子
$ext = "cgi";
# フォーム内容の送信方法
$method = "post";
# 文字コード
$code = "sjis";
# 管理者メールアドレス
$email = "your\@mail.address"; ⇒ 自分のメールアドレス。@の前に¥をつける。
# 「戻る」を押したときに移動するURL
$backurl = "http://your.top/page.html"; ⇒ 自分のHPのURL。
例) $backurl = "http://homepage2.nifty.com/sinnji/";
間違えやすいのは、
$basedir = "."; ⇒ $basedir = "../homepage" の部分。
" "の中に ../homepage (ドット、ドット、スラッシュ、homepage)
(ここではわかりやすく表示するために間隔が開いています)
メールアドレスは表示したくなければ入れなくて可。
変更したら上書き保存をします。
4.tqadmin.cgi の以下の変数を編集する。
(解説)
tqadmin.cgi を開いて、
$password = "TakaQV204"; ⇒ "自分の好きなパスワード"
変更したら上書き保存。
5.cgi、.plファイルをFTPのアスキーモードで転送する。
パーミッションは、.cgiを705、.plを604に設定する。。
※ FTPについてはプログラムをFTPで送るを参照。
※ パーミッションについてはパーミッションを設定するを参照。
(解説)
ここでファイルの名前を訂正します。
以下の各ファイルを右クリック、名前の変更をクリックして、
txtを消し、− を . にします。
(ドットは半角。ここではわかりやすく表示するために間隔が開いています。)
tqindex-cgi.txt ⇒ tqindex.cgi
tqquiz-cgi.txt ⇒ tqquiz.cgi
tqscore-cgi.txt ⇒ tqscore.cgi
tqadmin-cgi.txt ⇒ tqadmin.cgi
tqlib-pl.txt ⇒ tqlib.pl
jcode-pl.txt ⇒ jcode.pl
以上の6つのファイルを、HPのファイルが入っているフォルダーに入れます。
FTP転送ソフト(FFFTPなど)を起動し、接続。

普段のHPファイルは右側(ホスト側)のhomepageフォルダーのなかに転送しています。
ニフでは、cgiファイルとその他のデータファイルは別に設置しますので、
上図のようにcgi−binフォルダーが表示するように、上へのボタン○印をクリックします。
cgi−binフォルダーをダブルクリックすると、中は空白です。
ここに、
tqindex.cgi
tqquiz.cgi
tqscore.cgi
tqadmin.cgi
の4つのファイルをアスキーモードで転送します。
Aをクリックするとアスキーモードになります。
転送できたら、
右側(ホスト側)の4つの各ファイルを右クリックして、属性の変更をクリック。

現在の属性を705に変更して、OKをクリック。
4つのファイルの属性が変更できたら、上へのボタン○印をクリックします。
homepageフォルダーをダブルクリック。
tqlib.pl
jcode.pl
を転送。ホスト側で各ファイルを右クリック、属性の変更をクリックして、
現在の属性を604に変更して、OKをクリック。
6.$basedirで指定したディレクトリ ( $basedir="."; の場合は .cgi と同じディレクトリ)に
以下の5つのデータファイルをFTPのアスキーモードで転送する。
パーミッションは全て606に設定する。
(解説)
デスクトップのquiz200のフォルダーの中にある、
tqtop-html.txt と、tqquiz-html.txt のファイル名を変更します。
各ファイルを右クリックして、名前の変更をクリック、
tqtop-html.txt ⇒ tqtop.html
tqquiz-html.txt ⇒ tqquiz.html
次に、空ファイルを3つ作ります。
スタート、プログラム、アクセサリ、で、メモ帳を開きます。
ファイル、名前を付けて保存で、ファイル名を message にして、デスクトップに保存。
続けて、
メモ帳のファイル、名前を付けて保存で、ファイル名を genre にして、デスクトップに保存。
もう一つ、同様に ファイル名 tqlog にして、デスクトップに保存。
これで、空ファイルが3つできました。各ファイル名には後に txt が自動でつきます。
この3つと、さっき名前を変更した2つのファイル、
tqtop.html
tqquiz.html
message.txt
genre.txt
tqlog.txt
これらを、HPファイルが入っているフォルダーに移動します。
FTPを開いて、FTPの左側(ローカル側)に今移動したファイルがない場合は、
階層を一度上に上げます。上への矢印○印をクリックしてから、

もう一度、HPファイルがあるフォルダーをダブルクリックします。
すると、移動した新しいフォルダーが表示されます。
FTPの左側(ローカル側)のファイル名(txtなどの拡張子)を確認して下さい。
先程と同じように、普段のHPファイルと同じ、
右側(ホスト側)のhomepageフォルダーのなかに転送します。
ホスト側で各ファイルを右クリック、属性の変更をクリックして、
現在の属性を606に変更して、OKをクリック。
7.上と同じディレクトリに、ディレクトリlog、data、lockdirを作る。
パーミッションは全て707に設定する。
(解説)
空のフォルダーを3つ作ります。
今までのHPファイルが入っているフォルダーの中の、何もない所で右クリック。
新規作成をポイント、フォルダーをクリック。
キーボードのBackSpaceを押して、名前を log にして何もない所をクリック。
同じように、data と、lockdir という名のフォルダーも作ります。
次にFTPで転送しますが、
この時も、FTPの左側(ローカル側)に今作ったフォルダーがない場合は、
階層を一度上に上げます。上への矢印○印をクリックしてまた下へ戻ります。
先程と同じように、普段のHPファイルと同じ、
右側(ホスト側)のhomepageフォルダーのなかに転送します。
ホスト側で各フォルダーを右クリック、属性の変更をクリックして、
現在の属性を707に変更して、OKをクリック。
8.ディレクトリlogの下に、データファイルcount.txtをFTPでアスキー転送する。
パーミッションを606に設定する。
(解説)
空のテキストファイルを1つ作ります。
6.と同じように、
スタート、プログラム、アクセサリ、で、メモ帳を開きます。
ファイル、名前を付けて保存で、ファイル名を count にして、デスクトップに保存。
HPファイルが入っているフォルダーに移動。
FTPで転送時、
FTPの左側(ローカル側)に今作ったファイルがない場合は、
階層を一度上に上げます。上への矢印○印をクリックしてまた下へ戻ります。
右側(ホスト側)の log フォルダーをダブルクリックして開きます。
中は空です。そこに、count.txt を転送します。
転送後、ホスト側のcount.txt を右クリック。
属性の変更をクリックして、現在の属性を606に変更して、OKをクリック。
9.ブラウザからtqindex.cgi、tqadmin.cgiの両方にアクセスしてみる
→ HTMLが表示されればOK。
※ 表示されない場合、ブラウザでアクセスするを参照して問題を解決してください。
ここまでできたら、次の「ジャンルを作ってみる」にお進み下さい。
(解説)
例えば、homepageのURLが、http://homepage2.nifty.com/sinnji/の場合、
http://hpcgi2.nifty.com/sinnji/tqindex.cgi
がCGIの置いてあるURLになります。
インターネットエクスプローラー(IE)で、このURLを入力して確認します。

これが表示できればOK。
ここまでできたら設置は殆ど終了です。
あと、もうひと頑張りです。
FTPの左側(ローカル側)の tqtop.html をダブルクリック。
表示をクリック、ソースをクリック。
すると、以下のように、topページの中味がHTMLで表示されます。
この中の記述と、上の図を比較してください。
変更する個所は、赤字の部分です。日本語表記部分は普通に変換して入力します。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
<HTML>
<!-- ***** タイトル、背景を書いてください ***** -->
<HEAD><TITLE>TakaQ INDEX</TITLE></HEAD>
<BODY BGCOLOR="#CCCCFF"><FONT SIZE="2">
<!-- ***** 戻り先のURLを入力してください ***** -->
[<A HREF="http://your.homepage/">戻る</A>] ⇒上図のAの部分
[<A HREF="tqindex.cgi">TakaQ Top</A>] ⇒上図のBの部分
[<A HREF="tqscore.cgi?act=rank">成績一覧(Top10)</A>]
[<A HREF="tqadmin.cgi">管理用</A>]
[<A HREF="http://www.mytools.net/quiz/tbookmark.cgi" TARGET="_blank">
他のクイズサイトへ</A>]<P>
<!-- ***** 見出しやクイズの説明など、自由に書いてください ***** -->
<CENTER><H2>TakaQ INDEX</H2></CENTER>
説明文はここに書く。<B>HTMLも使えます</B>。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
自分に必要な変更をして、上書き保存をし、FTPで上書き転送します。
転送先を間違えないように注意。ホスト側に元あったものを上書きします。
net上で、ページを更新して変更されているかを確認します。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
変更例
<HTML>
<!-- ***** タイトル、背景を書いてください ***** -->
<HEAD><TITLE>三択クイズ<P>漢字編・その他のジャンル</TITLE></HEAD>
<BODY BGCOLOR="#CCCCFF"><FONT SIZE="2">
<!-- ***** 戻り先のURLを入力してください ***** -->
[<A HREF="http://homepage2.nifty.com/sinnji/">戻る</A>]
[<A HREF="tqindex.cgi">三択クイズ Top</A>]
[<A HREF="tqscore.cgi?act=rank">成績一覧(Top10)</A>]
[<A HREF="tqadmin.cgi">管理用</A>]
[<A HREF="http://www.mytools.net/quiz/tbookmark.cgi" TARGET="_blank">
他のクイズサイトへ</A>]<P>
<!-- ***** 見出しやクイズの説明など、自由に書いてください ***** -->
<CENTER><H2>三択クイズ<P>漢字編・その他のジャンル</H2></CENTER>
<CENTER><B>漢字、その他に関する3択クイズです。問題数は20問あります。<P>
挑戦をクリックすると問題が表示されます。<P>
答えを一つ選んでOKをクリックしてください。</B> <P>
H14.3.14 天丸 (cgi顧問:くるっく氏に感謝)</CENTER>
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
上記のように変更すると、下図のようになります。

これで設置は終了です。
この後は、
次の「ジャンルを作ってみる」に進みます。
ここからは解説書通りに作業すればクイズが作れます。
(問題点)
net上でCGIが表示されない。エラーが表示される。
(対策)
変更箇所の記述は、半角英数で正確でないとエラーになります。
ドット一つなくてもエラーになります。
1.ファイル名は正確に変更されているか、
FTPの左側(ローカル側)を確認。
修正して再転送。
※FTPの右側(ホスト側)でファイル名を変えても反映されない場合があります。
2.プログラム内容は正確に変更されているか、を確認。
修正して再転送。
※FTPの右側(ホスト側)でプログラム内容を変えても反映されません。
左側(ホス側)で修正したものを再転送します。
3.各ファイルは正確な位置に転送されているか、を確認。
あとがき
CGIの設置ができなくて、入門書を買って読みましたが、これがまた難しい(笑)
プログラムの基本を読んでもチンプンカンプンです。
ただ、完成したCGIの設置は、プロバイダーの指定する記述にしたり、
変更箇所が正確な命令文になってさえいればOK。
CGIが正常に稼動しないのは、どこかに変更間違いがあるからです。
「コンピューターは命令された仕事しかしない」という名言があります。
どうしても問題作成までたどり着けない場合や、
必要な変更以外の作業をして元のプログラムに戻せない場合は、
もう一度DLし直して、作業をやり直して見てください。
ここで解説している環境は、
windows98SE(Meでも可)を使い、
ブラウザはインターネットエクスプローラー5.01、
転送ソフトFTPはFFFTP、プロバイダーはニフティー
の場合です。
解説に間違いがないことを祈ります。
H14.3.23
付録
※解凍ソフトのない方
解凍ソフトを手に入れる
「窓の杜」のホームページで、圧縮・解凍ソフト「+Lhaca」(無料)をダウンロードする。
以下のURLをクリック。
http://www.forest.impress.co.jp/
「ソフトライブラリ」の中の、
ジャンル別一覧
圧縮・解凍・ランタイム をクリック
圧縮・解凍の中の、圧縮・解凍をクリック
圧縮・解凍の中の、+Lhaca の文字をクリック
+Lhacaのページの
DOWNLOAD
115KB
をクリックしてダウンロード。
(※18.10.19現在のページ仕様です。置いてある場所は今後変更の可能性あり)
「このプログラムをディスクトップに保存する」を確認。
「名前を付けて保存」の中、保存する場所がディスクトップであることを確認。
「保存」をクリック。
「ダウンロードの完了」が表示されたら、「閉じる」をクリック。
ディスクトップの「Lhaca075.EXE」のアイコンをクリック。
「Lhaca075をインストールします」の表示が出るので、
「OK」をクリック。
readme.txtが開くので内容に目を通したら×で閉じます。
デスクトップに +Lhaca のショートカットアイコンができています。
ダウンロードしたファイル「Lhaca075.EXE」はごみ箱に捨てても大丈夫です。
デスクトップにある「・・・・・.lzh」というの圧縮ファイルを、
左クリックしたまま移動(ドラッグ)して、
解凍ソフト「+Lhaca」の上に重ねて、手を離す(ドロップ)。これで解凍終了。
ファイルが開きます。