#! /usr/local/bin/perl

#ランダムリンク link.cgi v1.0
#1998.06.14製作
#　
#script by Falcon Taka
#http://www7.big.or.jp/~falcon/

#呼び出されるファイル　***.dat	#一行にひとつずつＵＲＬを入れる

#データファイルがＣＧＩと同じフォルダに入れれない場合相対パスで記述します。
$dir = './';		#同一フォルダにある場合はこのまま。
#------書き換え不要-------------------
srand(time);		#乱数の初期化

$buffer = $ENV{'QUERY_STRING'};

# フォームをデコード
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
	($name, $value) = split(/=/, $pair);
	$value =~ tr/+/ /;
	$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
	}
$FORM{$name} = $value;

if ($FORM{'page'} eq ""){ &error("ファイルの指定がありません。");}

$linkfile = $dir.$FORM{'page'}.".dat";

if (!open(DB,$linkfile)) { &error("ファイルの読み込みに失敗しました。"); }
	@links = <DB>;
	close(DB);

if(@links){#ランダムにデータを一つ選ぶ
	$link=$links[rand($#links+1)];
	}else{&error("データがありません。");
}

print "Location: $link\n\n";

#エラールーチン
sub error{
	print "Content-type: text/html\n\n";
	print "<HTML><HEAD><TITLE>ERROR</TITLE></HEAD><BODY>\n";
	print "エラー発生<BR>\n";
	print $_[0];
	print "</BODY></HTML>\n";
exit;
}
