#!/usr/local/bin/perl
### 簡易掲示板 v1.00
#BASE-CGI : http://www.interq.or.jp/earth/tumuji/ 超簡易掲示板 v0.99
#BASE-Aut : dominia
#Customize : Pastel Carrot - Lime Utano
#=============管理人の情報ここから=============#
$admin_url = ""; #管理人のHPトップアドレス
$admin_name = ""; #管理人の名前
$admin_mail = ''; #管理人のメールアドレス
#=============管理人の情報ここまで=============#
#===========通常変更可能区域ここから===========#
$F_TITLE = "簡易掲示板"; #タイトルの名前
$I_TITLE = ""; #画像の名前と場所
$TITLECOLOR = "#000000"; #タイトルの色
$TITLESIZE = "+3"; #タイトルの大きさ
$cook_name = "name"; #クッキーの名前
$cook_save = 30; #クッキー保存期間(日)
$max_word = 1200; #一回の書き込みにおける最大コメント文字数(半角)
$MAX = "50"; #保存できる最大数
$max = "10"; #1ページに表示できる数
$count = "./count.txt"; #count.txtの名前 及び場所
$cgifile = "./bbs.cgi"; #CGIファイルの名前 及び場所
$logfile = "./logfile.txt"; #ログファイルの名前 及び場所
require "./jcode.pl"; #jcode.plの場所(名前変更不可)
require "./filelock.pl"; #filelock.plの場所(名前変更不可)
## BODY-TAG 関連
$BGCOLOR = "#eeeeff"; #BGCOLORメソッド
$LINK = "red"; #LINKメソッド
$VLINK = "orange"; #VLINKメソッド
$TEXT = "black"; #BODYメソッド
## 投稿フォーム部分
$FORM_BG = "#eeffee"; #BGCOLORメソッド
#===========通常変更可能区域ここまで===========#
#########################################
#
# データの取りこみ
#
#########################################
$expire = gmtime(time+60*60*24*$cook_save);
if($ENV{'CONTENT_LENGTH'} || $ENV{'QUERY_STRING'}){
read STDIN,$QUERY,$ENV{'CONTENT_LENGTH'} if($ENV{'CONTENT_LENGTH'});
$QUERY = $ENV{'QUERY_STRING'} if($ENV{'QUERY_STRING'});
@QUERY = split /&/,$QUERY;
foreach(@QUERY){
($key,$val) = split /=/;
$key =~ tr /+/ /;
$val =~ tr /+/ /;
$key =~ s/%([a-fA-F0-9][a-fA-f0-9])/pack("c",hex($1))/ge;
$val =~ s/%([a-fA-F0-9][a-fA-f0-9])/pack("c",hex($1))/ge;
$val =~ s/</g;
$val =~ s/>/>/g;
$val =~ s/\"/"/g;
$val =~ s/\n/
/g;
&jcode::convert(*key, 'sjis');
&jcode::convert(*val, 'sjis');
$form{$key} = $val;
}
if($form{name}){
&error("本文が空白です") if($form{'body'} eq "");
&error("本文が長すぎます。$max_word文字以内に収めてください") if($form{'body'} > "$max_word");
$form{title} = "無題" if($form{title} eq "");
&error("メールアドレスの書式が間違っています") if($form{'mail'} && ($form{'mail'} !~ /.+\@.+\..+/));
&error("メールアドレスの文字制限を越えています。") if(length($form{'mail'}) > 100);
$form{url} =~ s/http\:\/\///;
&error("URLの文字数制限を越えてます。") if (length($form{url}) > 150);
&dubble; #二重投稿の禁止
&loaddata; #データの取得
&counter; #カウンターの取得
&ipdata; #IPの取得
&gettime; #時間の取得
&savedata; #データの保存
if($form{cookie}){&set_cookie;}
}
}
#########################################
#
# HTMLフォーム部分
#
#########################################
&get_cookie; #クッキーの取得
if($I_TITLE){
$M_TITLE = "";
} else {
$M_TITLE = "$F_TITLE";
}
&html_header($F_TITLE);
print <<"HTML";
| [$COUNT] $title\n"; if($mail){ print "投稿者:$name 投稿日:$TIME | "; } else { print "投稿者:$name 投稿日:$TIME"; } print "
$body |
http://$url |