Personality 1.40
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 にして完了です。


CGI置き場に戻る