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

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

#あなたのホームページのアドレス
$homepage = '../../';

#１ページに表示する行数
$pagevew = 20;
#=======================================================================================
#			初期設定が必要なのはここまでです。
#=======================================================================================

$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;
}

print <<HTML;
Content-type: text/html

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=x-sjis">
<TITLE>ブックマーク [リンク集擬き]</TITLE>
</HEAD>

<BODY bgcolor="#eeeeee">

<H4><NOBR>
<A HREF="$homepage">
<IMG SRC="../../images/button1.gif" BORDER=0 ALT="*">
Top</A>
</NOBR><HR></H4>

<H2>ブックマーク [リンク集擬き]</H2>

<CENTER>
<B>自動で登録できますので、お気軽に登録願います。</B><BR><BR>
HTML
if ($FORM{'action'} eq "rank") {
	print "<A HREF=\"linkvew.cgi?action=new\">\n";
	print "<IMG SRC=\"../../images/button3.gif\" BORDER=0 ALT=\"*\">\n";
	print "新着順</A>\n";
} else {
	print "<A HREF=\"linkvew.cgi?action=rank\">\n";
	print "<IMG SRC=\"../../images/button3.gif\" BORDER=0 ALT=\"*\">\n";
	print "アクセス数順</A>\n";
}
print <<HTML;
　　
<A HREF="linkregist.html">
<IMG SRC="../../images/button3.gif" BORDER=0 ALT="*">
新規登録・変更・削除</A>
</CENTER>
<BR>
HTML

if (!open(DB,"$database")) { &error(bad_file); }
@DATA = <DB>;
close(DB);
$count = @DATA;
print "<CENTER>現在、$count件が登録されています。</CENTER>\n";

if ($FORM{'action'} eq "rank") { @DATA = sort(@DATA); }
@DATA = reverse(@DATA);
if ($count > 0) {
	print "<HR>\n";
	#print "<table border=0 width=100%>\n";
	print "<DL>\n";
	if ($FORM{'pline'} eq '') { $pline = 0; } else { $pline = $FORM{'pline'}; }
	#保存されている総データ数を取得
	$end_data = @DATA - 1;
	#１ページに表示するデータ数を今までに表示した数にプラスする
	$page_end = $pline + ($pagevew - 1);
	#ページの最後の行が総データ数以上になるそこで終わりにする
	if ($page_end >= $end_data) { $page_end = $end_data; }
	#投稿されている記事を１行ずつ表示する
	if ($FORM{'ranking'} < 1) { $ranking = 1; }
	else { $ranking = $FORM{'ranking'}; }
	foreach ($pline .. $page_end) {
		($runc,$date,$code,$ran,$name,$email,$HPaddress,$iconaddress,$title,$subtitle,$comment,$ken,$tiku) = split(/\,/,$DATA[$_]);
		$comment =~ s/\r/<br>/g;

		print "<DT>\n";
		print "<IMG SRC=\"../../images/button5.gif\" BORDER=0 ALT=\"*\">\n";
		if ($FORM{'action'} eq "rank") {
			print "$ranking位 ";
		}
		print "<a href=ranking.cgi?code=$code>\n";
		print "<B>$title さん</B>\n";
		if ($subtitle ne "") {
			print " [$subtitle]";
		}
		print "</a>\n";
		print " " . "-" . " $ken ($ran)\n";
		if ($iconadress ne "" or $iconaddress ne "http://") {
			print "<DD><a href=ranking.cgi?code=$code>\n";
			print "<img src=$iconaddress border=0></a>\n";
		}
		if ($comment ne "") {
			print "<DD>$comment\n";
		}
		print "<P>\n";
		$ranking++;
	}
	#print "</table>\n";
	print "</DL>\n";
	#次のページの最初の行番号をこのページの最後の行に１プラスする
	$next_line = $page_end + 1;
	#まだデータが残っていれば次ページのボタンを付ける
	if ($page_end ne $end_data) {
		#次ページのためのフォームを生成
		print "<form method=POST action=linkvew.cgi>\n";
			print "<input type=hidden name=pline value=" . $next_line . ">\n";
			print "<input type=hidden name=ranking value=" . $ranking . ">\n";
			if ($FORM{'action'} eq "rank") {
				print "<input type=hidden name=action value=rank>\n";
			}
			print "<input type=submit value=次のページ>\n";
		print "</form>\n";
	}
}

print <<HTML;
<HR>
<DIV ALIGN="RIGHT">
<I><A HREF=http://www2.inforyoma.or.jp/%7Eterra/>LinkLinkLink Ver1.2 by Terra</A></I>
</DIV>
<HR>
<address>
<A HREF="mailto: shacho\@critical.ne.jp">
shacho\@critical.ne.jp
</A>
</address>
<!-- hhmts start -->
Last modified: Thu Feb 01 23:00:00 JST 2001
<!-- hhmts end -->
</BODY>
</HTML>
HTML

exit;

#======================================エラー処理ルーチン=================================
sub error {
	$error = $_[0];
	if ($error eq "bad_file") { $msg = 'ファイルのオープン、入出力に失敗しました。'; }
	elsif ($error eq "bad_string") { $msg = 'キーワードを入力してください。'; }
	else { $msg = '原因不明のエラーで処理を継続できません。'; }

	print "エラーが発生しました<BR>\n";
	print "$msg<BR>\n";
	print "<BR>\n";

print <<HTML;
<HR>
<address>
<A HREF="mailto: shacho\@critical.ne.jp">
shacho\@critical.ne.jp
</A>
</address>
<!-- hhmts start -->
Last modified: Thu Feb 01 23:00:00 JST 2001
<!-- hhmts end -->
</BODY>
</HTML>
HTML

	exit;
}
