#!/usr/bin/perl
#
#チェック・診断テストプログラム Ver1.5
#
#1999-2000 湯一路
#yuichiro@url-battle.com
#http://www.url-battle.com/cgi/index.html
#※改造・再配布ともに自由ですが著作権表示は削除しないでください。

#■以下の項目を変更してください。

#チェック・診断テストのタイトル
$title = 'オンラインショップ信頼度診断テスト';

#トップページのリンク先URL
$top_page = 'http://www.kokugai.com/onlineshop/';

#解説文
$top_info = '<br>あなたのオンラインショップの信頼度を診断するテスト';

#得点の初期値
$total = 0;

#タイトルの色
$title_color="#191919";

#YESまたはNO はい、いいえなどに変えたいときに変更してください。
$yes_msg = "YES";
$no_msg = "NO";

#bodyタグ 背景などの設定をしてください。
$body = "<body bgcolor=#ffffff>";

#tableタグ テーブルの形状を変えたいときに変更してください
$table = "<table border=0 cellspacing=0 bordercolor=#ffffff frame=box>";

#tableのヘッダー　表の見出しにあたる部分です
$table_header = "<tr><td bgcolor=#888888><center>番号</center></td><td bgcolor=#888888><center>質問</center></td><td bgcolor=#888888>$yes_msg</td><td bgcolor=#888888>$no_msg</td>\n";

#使い方
$for_user = << "END_MSG";
<table border=0><tr><td bgcolor=#ffffff>
<b>〜使い方〜</b><br>以下の質問に$yes_msg,$no_msgで答えてください。<br>すべてのチェックを埋めた後、一番下にある<b>チェック</b>を押してください。
</td></tr></table><p>
END_MSG

#設定用ファイル　ファイル名を変えた場合のみ変更してください。
$file = './check.dat';
$result_file = './result.dat';

#■変更ここまで


$prehost="temp";
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $QUERY_DATA, $ENV{'CONTENT_LENGTH'}); 
} else { $formdata = $ENV{'QUERY_STRING'}; }

@pairs = split(/&/,$QUERY_DATA);

foreach $pair (@pairs) {
	($name, $value) = split(/=/, $pair);
	$value =~ tr/+/ /;
	$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

	$value =~ s/\n//g; 
	$value =~ s/</&lt;/g;
	$value =~ s/>/&gt;/g;

	$FORM{$name} = $value;
}

	if (!open(DB,$file)) { print "ファイルが開けません\n"; exit; }
		@DATA = <DB>;
	close(DB);
	$question_max = @DATA;
	print "Content-type: text/html\n\n";
	print "<html>\n";
	print "<head>\n";
	print "<title>$title</title>\n";
	print "</head>\n";
	print "$body\n";

	if ($FORM{'check'} eq 'regist') { &regist; }
	else { &html; } 

	exit;

sub html {
	print "<font color=$title_color size=5>$title</font><br>\n";
	print "$top_info<p>\n";
	print "$for_user<p>";

	print "<form action=check.cgi method=POST>\n";
	print "<input type=hidden name=check value=regist>\n";

	$number=1;

	print "$table";
	print "$table_header";


foreach $line (@DATA) {
	chop($line);
	($qestion,$type,$point) = split(/\,/,$line);

	print "<tr><td><center>$number</center></td><td>$qestion</td>\n";

	#yes,noどちらに得点があるか振り分ける
	if ($type eq 'y' || $type eq 'Y'){
		$yes = $point;
		$no = 0;
		}
	else
		{
		$yes = 0;
		$no = $point;
		}

	print "<td><INPUT TYPE=radio NAME=check$number VALUE=$yes>$yes_msg</td>\n";
	print "<td><INPUT TYPE=radio NAME=check$number VALUE=$no>$no_msg</td></tr>\n";
	$number++;
}
	print "</table>";

	print "<input type=submit value=チェック！><p>\n";
	print "</FORM>\n";
	&footer;
	exit;
}

sub regist {
	#偏差値の計算（単純に合計しているだけです）

	for ($i = 1; $i <= $question_max; $i++) {
		$temp = "check" . $i;
		$total = $total + $FORM{$temp};
	}

	if (!open(DB,$result_file)) { print "ファイルが開けません\n"; exit; }
	@DATA = <DB>;
	close(DB);
	$result_num = @DATA;
	$flag = 0;
	print "あなたの得点は<font color=red size=+2>$total</font>です！\n";
	print "<hr>\n";
	print "■解説<br>\n";

	foreach $line (@DATA) {
		chop($line);
		($num,$result) = split(/\,/,$line);
		
		if ($total >= $num){
			print "$result\n";
			$flag=1;
			last;
		}
	}
	if ($flag == 0) {
		print "$result\n";
	}

	print "<p>\n";
	&footer;

	exit;
}

sub footer{
	print "<a href=\"$top_page\">戻る</a>";
	print "<hr>\n";
	#著作権表示->以下の1行は削除しないでください。
	print "CGI:<a href=\"http://www.url-battle.com/cgi/\">湯一路</a>\n";
	print "</body>\n";
	print "</html>\n";

}
