#!/usr/local/bin/perl

require 'jcode.pl';
$bbsurl = 'kouryu.cgi';
$bbsfile = 'kouryu.txt';
($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900;
$mon = sprintf("%02d", $mon + 1);
$day = sprintf("%02d", $day);
$hour = sprintf("%02d", $hour);
$min = sprintf("%02d", $min);
$date_now = "$year年$mon月$day日 $hour時$min分";
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/</&lt;/g;
$value =~ s/>/&gt;/g;
$value =~ s/\n//g;
$value =~ s/\,//g;
&jcode'convert(*value,'sjis');
$FORM{$name} = $value;
}
if ($FORM{'action'} eq "true") { &regist; }
else { &html; } 
sub html {
if (!open(NOTE,"$bbsfile")) { &error(bad_file); }
@DATA = <NOTE>;
close(NOTE);
@DATA = reverse(@DATA);
print "Content-type: text/html\n\n";
print "<!DOCTYPE HTML PUBLIC -//IETF//DTD HTML//EN>\n";
print "<html>\n";
print "<head>\n";
print "<meta http-equiv=Content-Type content= text/html; charset=x-sjis>\n";
print "<title>交流ノート</title></head>\n";
print "<body background=../kabegami3.jpg text=#000000>\n";
print "<form action=kouryu.cgi method=POST>\n";
print "<input type=hidden name=action value=true>\n";
print "<div align=center><center>\n";
print "<font color=darkgreen><h2>交流ノート</h2></font>\n";
print "<table border=1 cellspacing=1>\n";
print "<tr>\n";
print "<td align=center>お名前</td>\n";
print "<td><input type=text size=29 name=name></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td align=center>タイトル</td>\n";
print "<td><input type=text size=29 name=title></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td align=center>E-mail</td>\n";
print "<td><input type=text size=29 name=email></td>\n";
print "</tr>\n";
#===
print "<tr><td nowrap>アイコン</td>\n";
print "<td><select name=icon>\n";
  print "<option value='../meisou.gif' selected name=icon>ざっそう\n";
  print "<option value='../meisou2.gif' name=icon>ざっそう2\n";
  print "<option value='../todoroki.gif' name=icon>とどろき\n";
  print "<option value='../konwaku.gif' name=icon>つめくさ\n";
  print "<option value='../rurou.gif' name=icon>ジョニー\n";
  print "<option value='../sasurai.gif' name=icon>隠れ\n";
print "</select> ※好きなアイコンを選択してください\n";
print "</td></tr>\n";
#===
print "<tr><td nowrap>文字カラー</td>\n";
print "<td><input type=radio name=color value=000000> ";
print "<font color=000000>■</font>\n";
print "<input type=radio name=color value=4080f0> ";
print "<font color=4080f0>■</font>\n";
print "<input type=radio name=color value=40a0c0> ";
print "<font color=40a0c0>■</font>\n";
print "<input type=radio name=color value=00e6b3> ";
print "<font color=00e6b3>■</font>\n";
print "<input type=radio name=color value=8060c0> ";
print "<font color=8060c0>■</font>\n";
print "<input type=radio name=color value=ff80e6> ";
print "<font color=ff80e6>■</font>\n";
print "<input type=radio name=color value=ff6680> ";
print "<font color=ff6680>■</font>\n";
print "<input type=radio name=color value=ff9900> ";
print "<font color=ff9900>■</font>\n";
print "</td></tr>\n";
#===
print "<tr>\n";
print "<td align=center>コメント</td>\n";
print "<td><textarea name=comment rows=4 cols=68></textarea></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td align=center colspan=2><input type=submit value=投稿>  　　<input type=reset value=リセット></td>\n";
print "</tr>\n";
print "</table></center></div>\n";
print "</form>\n";
print "<div align=center><center>\n";
foreach $line (@DATA) {
chop($line);
($date,$name,$email,$comment,$title,$icon,$color,$d4) = split(/\,/,$line);
$comment =~ s/\r/<br>/g;
print "<table border=2 bordercolor=lightgreen width=500 bgcolor=#FFFFFF>\n";
print "<tr>\n";
print "<td><font color=#000000>\n";
print "<font color=green><strong>$title</strong></font>\n";
if ($email ne "") {
print "<a href=mailto:$email><strong>$name</strong></a>\n";
} else { print "<strong>$name</strong>\n"; }
print " <small>$date</small>\n";

print "</font>\n";
print "<hr color=lightgreen>\n";
print "<font color=$color>\n";
print "<img src=$icon align=left><blockquote>$comment</blockquote>\n";
print "</font>\n";
print "</td>\n";
print "</tr>\n";
print "</table>\n";
print "<p>";
}
print "</center></div>\n";
print "</body></html>\n";
exit;
} 
sub regist {
if ($FORM{'name'} eq "") { &error(bad_name); }
if ($FORM{'comment'} eq "") { &error(bad_comment); }
if (!open(NOTE,">>$bbsfile")) { &error(bad_file); }
$value = "$date_now\,$FORM{'name'}\,$FORM{'email'}\,$FORM{'comment'}\,$FORM{'title'}\,$FORM{'icon'}\,$FORM{'color'}\,\n";
print NOTE $value;
close(NOTE);
print "Location: $bbsurl" . '?' . "\n\n";
} 
sub error {
$error = $_[0];
if ($error eq "bad_file") { $msg = 'ファイルのオープン、入出力に失敗しました。'; }
elsif ($error eq "bad_name") { $msg = 'ニックネームが記入されていません。'; }
elsif ($error eq "bad_comment") { $msg = 'コメントが記入されていません。'; }
else { $msg = '原因不明のエラーで処理を継続できません。'; }
print "Content-type: text/html\n\n";
print "<html><head><title>交流ノート</title></head>\n";
print "<body background='../kabegami3.jpg' text=#000000 LINK=#FFAAAA VLINK=#FF8888>\n";
print "<p>\n";
print "<center><h2>error</h2><hr>\n";
print "<i>" . $msg . "</i></hr></center>\n";
print "</body></html>\n";
exit;
}
