Top > FreeCGI > 性格診断
雑誌なんかによくある質問に答えていくと「〜型」とか「誰々との相性抜群」といった性格診断ゲーム。人生の香辛料代わりになりますね。そんなテストをあなたのホームページでもやってみませんか?
2001/06/24 v1.4 集計結果が間違って表示されるのを修正
サンプルはこちらです
集計結果がでるようになりました!
利用規約を確認の上、下のファイルをダウンロードします。
prsnl140.lzh(圧縮ファイル)
1解凍
prsnl121.lzh を展開すると
personal.cgi …本体CGI
config.cgi …設定ファイル
qstn0.dat …質問データファイル
prsn0.dat …判定データファイル
log.dat …ログ集計ファイル
が出来ます。
2設定の変更
config.cgi を開き、設定部分をご自分の好みに変更します。ファイルに変更を加えた場合はWindowsやMacを使用している方は改行の形式をUNIX形式になおします。
設定で気をつける必要があるのは、「データディレクトリ」「データファイルの名前」「データファイルの拡張子」です。
・($dir) データディレクトリ…データファイルを置いておく場所です。初期設定は「dat/」となっていますが、これは personal.cgi を置いたディレクトリのサブディレクトリ「dat」を意味しています。データがばれないようにこの名前は変えて、対応するディレクトリを作成したほうが良いでしょう。また何も設定しない場合はCGIが置いてあるディレクトリがデータディレクトリになります。
・($q_file,$p_file) データファイルの名前…データファイルには「人物判定用」と「質問用」の二種類あるいます(詳しくは次の節を見て下さい)。それぞれに適当な名前をつけます。
・($exp) データファイルの拡張子…デフォルトでは「dat」となっています。dat ですとブラウザから内容が見える場合があるので「cgi」にするなどして対応してください。
データファイルの名前と、拡張子の名前、それに0(半角)から始まる番号の組み合わせでデータファイルの完全な名前が決定されます。
例:ファイル名が質問用が「question」人物判定用が「person」、拡張子名「dat」だとすると基本となるファイルはそれぞれ「question0.dat」「person0.dat」となります。
この真ん中にはさまれる「数字」はデータファイルの番号をさします。以下、「question1.dat」と「person1.dat」、「question2.dat」と「person2.dat」が対になっていきます。CGIを起動するときに「personal.cgi?n=○」の○の部分に数字を入れることで、使用するデータを変更することができます。(n=を省略すると、n=0と同等の結果になります。)
例:personal.cgi?n=2 … 「question2.dat」「person2.dat」を使用。
こうすることによって、様々なデータを簡単にとり扱うことができます。
※
バージョン1.2から集計結果(設問の解答と判定結果)を記録できるようになりました。このため必ず記録用のログファイルを設置してください(後述)。記録の表示はv=1とします。
例えばにn=2の記録を見たい場合はpersonal.cgi?n=2&v=1 というふうに、&を間に挟んで下さい。n=0の時はn=0を省略できます。
3データの書式
このCGIは「質問データ」と、「人物判定用データ」がペアで必要です。以下にデータのつくりかたを説明します。
・人物判定用データ
とにかく「判定基準」を考えます。例えば「優しい」とか「知的」とか…。そうして、それぞれの判定を百段階評価します。判定基準はいくつあっても構いません。50を平均とします。
人物名<タブ>基準値<タブ>基準値<タブ>基準値…
上の例のように一つの行ごとに、人物名、基準値(必ず半角数字で)をタブで区切っていきます。一行につき一人物のデータです。行の先頭に「#」をつけるとその行は無視されます。コメントに使ってください。
例:
# 知力 体力
できすぎ君 80 50
ジャイアン 30 80
のび太 20 30
※
バージョン1.3から判定用データの書式に変更があります。詳しくはサンプルのファイルをみてください。
・質問データ
質問データには質問事項を書きます。さらにその質問に「はい」と答えたときに加算される「判定基準」のデータを書き込みます。具体例を出した方が良いでしょう。
テストでいつも満点 1+
上の例は基準値の一番最初つまり「知力」にポイントが加算されることを意味します。質問に「いいえ」と答えるとポイントにマイナスになります。次の例では
マラソンは苦手 2-
上の例では質問に「はい」と答えると二番目の基準「体力」がマイナスになるという仕組みです。さらに
何をやってもうまくいく 1+,2+
上の例では「はい」と答えると「知力」も「体力」も加算されます。このように「,」で区切ると一つの質問でいくつでも基準値に加減ができます。
なお、ポイントの計算方法ですが、例えば、質問データのなかに 1+ が全部で5個あって(ここでは 1- はないものとします)、そのうち3つに「はい」、残り2つに「どちらでもない」と答えた場合、基準1の評価は
1+1+1+0+0=3。それから
3/5×50 + 50 = 80 と計算されます。
仮に3つに「はい」1つに「いいえ」1つに「わからない」と答えたら、
1+1+1−1+0=2。2/5×50 + 50 = 70 となります。
また、人物データ同様、行の先頭に「#」があるとコメント行とみなされます。
その他質問データ中において
・タイトル
行の先頭に「^title=」とするとそのデータのタイトルをつけることができます。
例 ^title=ドラえもんの世界
・コメント
行の先頭に「^comment=」とすると設問画面にメッセージをつけることができます。
例 ^title=ドラえもんの登場人物の誰に似ているかな?
・結果メッセージ
行の先頭に「^result=」とすると結果表示の際のメッセージをつけられます。
例 ^result=あなたと一番相性がよいのは…
そのほかにもありますが、詳しくはサンプルファイルをご覧下さい。
5設置
集計用ログファイルとして log.dat という空のファイルがあります。設定($log)を変えることでファイル名や設置ディレクトリを変更できます。
FTPを使って personal.cgi とデータファイル、集計用ログファイルを自分のwebサーバに送ります。転送はアスキー形式です。
personal.cgi のパーミッションを 755 に、データファイル、config.cgi を 444 に、ログファイルを 646 にして完了です。
|