#!/usr/local/bin/perl
# 　　※ ↑あなたが加入しているプロバイダの「perl」言語が使用できるパスを指定します。
#        「#!/usr/local/bin/perl」、「#!/usr/local/bin/perl5」など
#         サーバ管理者（もしくはプロバイダ）に確認してください。

#※サンプル設置と異なる場合には、以下のパスを変更する必要があります。
require './jcode.pl'; # 日本語コード変換ライブラリ

#=================================================================================
#　　　　　　　　　　　初期設定が必要なのはここまでです。
#=================================================================================
$database = 'link.txt';
if ($ENV{'REQUEST_METHOD'} eq "POST") {
	read(STDIN, $formdata, $ENV{'CONTENT_LENGTH'});
} else { $formdata = $ENV{'QUERY_STRING'}; }

@pairs = split(/&/,$formdata);
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/</&lt;/g;
	$value =~ s/>/&gt;/g;
	$value =~ s/\n//g;
	$value =~ s/\,//g;
	$value =~ s/ /　/g;
	&jcode'convert(*value,'sjis');
	$FORM{$name} = $value;
}
if (!open(DB,"$database")) { &error(bad_file); }
@DATA = <DB>;
close(DB);
$count = @DATA;
$i = 0; $match = "false";
foreach $line (@DATA) {
	($rank,$da,$co,$ran,$na,$em,$HP,$icon,$ti,$sub,$com,$ken,$tiku) = split(/\,/,$line);
	chop($tiku);
	if ($FORM{'code'} eq $co) {
		$ran++;
		if ($ran < 10) { $rank = "0000$ran";}
		elsif ($ran < 100) { $rank = "000$ran";}
		elsif ($ran < 1000) { $rank = "00$ran";}
		elsif ($ran < 10000) { $rank = "0$ran";}
		else { $rank = $ran;}
		$value = "$rank\,$da\,$co\,$ran\,$na\,$em\,$HP\,$icon\,$ti\,$sub\,$com\,$ken\,$tiku\n";
		@DATA[$i] = $value;
		$match = "true";
		last;
	}
	$i++;
}
if ($match eq "false") { &error(bad_address); }
if (!open(DB,">$database")) { &error(bad_file); }
print DB @DATA;
close(DB);
print "Location: $HP \n\n";
exit;
#======================================エラー処理ルーチン=================================
sub error {
	$error = $_[0];
	if ($error eq "bad_file") { $msg = 'ファイルのオープン、入出力に失敗しました。'; }
	elsif ($error eq "bad_data") { $msg = 'すべての項目を入力してください。'; }
	elsif ($error eq "bad_address") { $msg = '指定のアドレスが見つかりません。'; }
	else { $msg = '原因不明のエラーで処理を継続できません。'; }
	print "Content-type: text/html\n\n";
	print "<html><head><title>リンクエラー</title></head>\n";
	print "<body bgcolor=#000000 text=#FFFFFF>\n";
	print "<center><h2>ＥＲＲＯＲ</h2><hr>\n";
	print "<i>" . $msg . "</i></hr></center>\n";
	print "<p></body></html>\n";
	exit;
}
