#! /user/local/bin/perl

#################################################
# TEST BBS
# by Takaaki Sugiyama
# 徊雇¨"BBS Lite" by Hiroyuki Koike
#################################################

########介磥E吣丒#######
require './jcode.pl';
#肋年に圭E护匹靴工蚴压工工丒长

$title="Test BBS";

$file="./testbbs.log";
#茨董に圭E护剖压工工丒长

$max="100";
#今き哈み穪E簸魏锹缗邢靠丒
$textcolor="000000";
#矢机の咖の肋膩E
$bgcolor="ffffff";
#秦肥咖の肋膩E
$titlecolor="0000ff";
#タイトE富慰Г卫吣丒

$h_url="http://****/index.html";
#ホ〖ムのURL

########苼E榨恰讥郡渭杵########

($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime;

$mon++;

#@y=("苼E,"穪E,"残","縼E,"腾","秮E,"炮");
$y0="苼E; $y1="穪E; $y2="残"; $y3="縼E; $y4="腾"; $y5="秮E; $y6="炮";
@week=($y0,$y1,$y2,$y3,$y4,$y5,$y6) [(localtime)[6]];

$wday=$week[$wday];

if($sec<10) { $sec="0$sec"; }
if($min<10) { $min="0$min"; }
if($hour<10) { $hour="0$hour"; }

$date_now = "$mon穪Emday苼E$wday∷$hour箕$min尸$sec擅";
#山绩すE恰讥郡渭丒啶蚶吣辘工丒
##########################################

print"Content-type: text/html\n\n";

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


if($buffer eq "")  { &html; }
else{
	&parse;
	&modify;
	&html;
}


sub html{

	open(DB,"$file")||die"Cannot Open File $file: $!";
	@t_file = <DB>;
	close(DB);

	print"<html>";
	print"<head><title>$title</title></head>\n";
	print"<body bgcolor=\"#$bgcolor\" text=\"#$textcolor\">\n";
	
	print"<font size=+2 color=\"#$titlecolor\"><b>$title</b></font>\n";
	print"<p>\n";

	print"$message\n";
	print"<a hlef=\"$h_url\">To Home</a>\n";
	print"<hr>\n";

	foreach $line (@t_file){
		if($line =~ /\[(.*)\] (.*) \^ (.*) \^ (.*)/){
			$date = $1;
			$a_name = $2;
			$email = $3;
			$comment = $4;
			
			if($email ne ""){
				print "<hr><font size=+2><b><a href=\"mailto:$email\">$name</a></b></font>";
			}
			else{
				print "<hr><font size=+2><b>$a_name</b></font>";
			}

			print "$date<p>\n";
			print "<pre>$comment</pre>\n";
		}
	}

	print "</body></html>";
}


sub parse{
	@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;

			  $value =~ s/<img(.|\n)*//ig; # 敦贿すE骏挨蚶吣丒           		  $value =~ s/<!--(.|\n)*//ig;
         		  $value =~ s/<pre(.|\n)*//ig;
         		  $value =~ s/<form(.|\n)*//ig;
         		  $value =~ s/<table(.|\n)*//ig;
         		  $value =~ s/<script(.|\n)*//ig;
         		  $value =~ s/<head(.|\n)*//ig;
         		  $value =~ s/<body(.|\n)*//ig;
         		  $value =~ s/<style(.|\n)*//ig;
         		  $value =~ s/<applet(.|\n)*//ig;
          		  $value =~ s/<marquee(.|\n)*//ig;
          		  $value =~ s/<meta(.|\n)*//ig;
          		  $value =~ s/<option(.|\n)*//ig;
         		  $value =~ s/<select(.|\n)*//ig;
         		  $value =~ s/<\/body(.|\n)*//ig;
         		  $value =~ s/<\/html(.|\n)*//ig;
         		  $value =~ s/<title(.|\n)*//ig;
         		  $value =~ s/<head(.|\n)*//ig;
         		  $value =~ s/<hr\s*>/<hr width\=80\%>/ig;

    		  $value =~ s/\n//g;
     		  $value =~ s/^//g;
 
		&jcode'h2z_sjis(*value);
		&jcode'convert(*value,'sjis');

		$FORM{$name} = $value;
	}

	$a_name=$FORM{'a_name'};
	$comment=$FORM{'comment'};
	$email=$FORM{'email'};

	if($name eq "") {&n_error;}
	if($comment eq "") {&c_error;}
}

sub modify{print "hello world!";

	$id = $ENV{'REMOTE_HOST'};

	open(LOG,"$file")||die "Can't Open File: $!\n";
	@lines=<LOG>;
	close(LOG);

	$temp=@lines;
	$max2=($max-2);

	open(LOG,">$file")||die "Can't Open File: $!\n";

	print LOG "[$date_now] $a_name \^ $email \^ $comment\n";

	if($temp >= $max){
		foreach $temp (0..$max2){
			print LOG $lines[$temp];
		}
	}
	else{
		foreach (@lines){
			print LOG;
		}
	}
	close(LOG);
}

sub n_error{
	print "<html>";
	print "<head><title>$title</title></head>";
	print "<body bgcolor=\"#$bgcolor\" text=\"#$textcolor\">\n";
	print "<h1>$title<hr></h1>\n";

	print "叹涟が掐蜗さE皮い蓼护丒;

	print "<p><hr>\n";
	print "</body></html>\n";

	exit;
}

sub n_error{
	print "<html>";
	print "<head><title>$title</title></head>";
	print "<body bgcolor=\"#$bgcolor\" text=\"#$textcolor\">\n";
	print "<h1>$title<hr></h1>\n";

	print "コメントが掐蜗さE皮い蓼护丒;

	print "<p><hr>\n";
	print "</body></html>\n";

	exit;
}