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.上と同じディレクトリに、ディレクトリlogdatalockdirを作る。

パーミッションは全て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.cgitqadmin.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 HREF="tqindex.cgi">TakaQ 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>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

 

ホームページtopへ

 

付録

※解凍ソフトのない方

解凍ソフトを手に入れる

「窓の杜」のホームページで、圧縮・解凍ソフト「+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」の上に重ねて、手を離す(ドロップ)。これで解凍終了。

ファイルが開きます。