#!/usr/bin/perl

#----------#
#   設定   #
#----------#

# bbs.cgi のURL
$url = "http://easycgi.xrea.jp/admin/bbs.cgi";


# デコード
require 'jcode.pl'; 
read( STDIN, $data, $ENV{ 'CONTENT_LENGTH' } );
@pairs = split(/&/,$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/<BR>/g;
    $value =~ s/\t/ /g;
    $value =~ s/\r//g;
    &jcode'convert(*value,'sjis');
    $FORM{$name} = $value;
}


# 未入力確認
if ($FORM{'name'} eq "") { &nodata('お名前') ; }
if ($FORM{'title'} eq "") { &nodata('件名') ; }
if ($FORM{'body'} eq "") { &nodata('本文') ; }


# データを結合する
$log = "$FORM{'name'}<>$FORM{'title'}<>$FORM{'body'}\n";


# ファイルを開いて書き込み
if (!open(IN,"bbs.log")) { &fileerror; }
flock(IN, 1);
@DATA = <IN>;
close(IN);

if (!open(OUT,">bbs.log")) { &fileerror; }
flock(OUT, 2);
unshift (@DATA,$log);
print OUT @DATA;
close(OUT);
print "Content-type: text/html\n";
print "Location: $url" . '?' . "\n\n";

# 未入力エラー表示
sub nodata {
print "Content-type: text/html\n\n";
print "<CENTER><B>$_[0] が入力されていません!</B></CENTER>";
exit;
}

# ファイルエラー表示
sub fileerror {
print "Content-type: text/html\n\n";
print "<CENTER><B>ファイルが開けません!</B></CENTER>";
exit;
}