#! /usr/local/bin/perl
require './jcode.pl';
require "./cgi-lib.pl";
#■■■■■■■■■■ お絵かき掲示板 ver.1.32
# (c)2000,poo site
# Web page:http://www2.plala.or.jp/junji21/index.htm
# パスワード設定(必ず変更して下さい。12文字以内の英数字)
#=================== Oekaki BBS ver.1.32
# (c)2000,poo site
# Web page:http://www2.plala.or.jp/junji21/index.htm
# Enter your password below, maximum 12 characters
$pass="12345";
# 戻り先のURL
# Your default path for returning to your web page
$homepage = "../index.html";
#■■■■■■■■■■ 配色等のカスタマイズ ■■■■■■■■■■
#=================== Cosmetic Attributes ===================
# 壁紙を使用する場合(使用する場合にのみ、ファイル名を指定して下さい)
# Background image to use
$BACKGIF = "bg.jpg";
# 背景色(壁紙を使用しない場合)
# Background color (if background image is not specified)
$BGcolor="ffffff";
# 本文の表示色
# Text color
$TXcolor="#000000";
# 日付の表示色
# Date color
$DTcolor="#666666";
# 絵のナンバーの表示色
# Picture number color
$NOcolor="#333333";
# コメント投稿画面の入力部の色
# Comment entry color
$CM2color="#ccccff";
# コメント表示部の色
# Comment display area color
$CMcolor="#ffffff";
# コメント表示部の枠の色
# Comment border color
$BDcolor="#ffffff";
# コメント投稿者の名前の表示色
# Author's name color
$NMcolor="#3333ff";
# タイトル(お絵かき掲示板)の表示色
# Title color (at the BBS)
$TLcolor="#333333";
#■■■■■■■■■■ メッセージのカスタマイズ ■■■■■■■■■■
#=================== Message Customization ===================
# タイトルに画像を使用する場合
# If you wish to use an image for the title, enter it below, along with the width and height
$TITLEGIF = "";
$TGW = '150';# width of image (in pixel)
$TGH = '50';# height of image (in pixel)
# 新規画像投稿用リンクに画像を使用する場合
# Link image for submitting new doodle
$NEWGIF = "";
$NGW = '150';# width of image (in pixel)
$NGH = '50';# height of image (in pixel)
# 新規コメント投稿用リンクに画像を使用する場合
# Link image for submitting comment
$NEWCOM = "";
$NCW = '150';# width of image (in pixel)
$NCH = '50';# height of image (in pixel)
# タイトルメッセージ(画像を用いない場合)
# Title Message (When Title Image is not used)
$TITLE="Oekaki BBS";
# タイトル文字のフォントタイプ
# Font type for title message
$TITLEFACE = "MS Pゴシック";
# リターンメッセージ
# Return link message
$RETURN="Home";
# メッセージ1
# Administration page message
$MESSAGE1="Admin";
# メッセージ2(画像を用いない場合)
# Picture submission message (when image is not specified)
$MESSAGE2="Doodle";
# メッセージ3
# Comment submission message (when image is not specified)
$MESSAGE3="Comment for this doodle";
# メッセージ4
# Text for comment button
$MESSAGE4="Add Comment";
# メッセージ5
# Text for sort by latest picture submission
$MESSAGE5="Sort by date of doodle";
# メッセージ6
# Text for sort by comment date
$MESSAGE6="Sort by date of comments";
# メッセージ7
# Text for comment submission button
$MESSAGE7="Submit comment";
# メッセージ8
# Text for returning
$MESSAGE8="Return to BBS";
# メッセージ9
# Text for adding comment
$MESSAGE9="Comment";
# 文字の大きさ(2、3、4のどれかを指定。数が大きいほど、文字も大きい)
# Font size (use sizes 2, 3, and 4, with 4 being the biggest
$moji="2";
# コメント欄の横幅のブラウザの幅に対する割合
# Frame size for comment window
$CWIDTH="80%";
# URLの自動リンク (0=no 1=yes)
# Allow auto link of URL submitted
$autolink = 1;
# 家アイコンの使用 (0=no 1=yes)
# Use an icon for the link for homepage (0=no 1=yes)
$home_icon = 0;
$home_gif = "";# 家アイコンのファイル名
$home_wid = 25;# 画像の横サイズ
$home_hei = 22;# 〃 縦サイズ
#■■■■■■■■■■ 一画面の表示枚数および画像の保持枚数 ■■■■■■■■■■
#=================== Number of Doodles to Show in Every page ===================
#一画面の画像表示枚数
# Number of doodles to show in every page
$gznumber=20;
#画像の保持枚数(デフォルトは50枚)
#この値を変更する場合は、必ず、getpic.cgiのソース中の対応する部分も変更して下さい。
# Number of pictures to keep in the server (default 50)
# If you change this value, you must change the same value in the getpic.cgi file.
$lgnumber=50;
#■■■■■■■■■■ ホスト名の表示 ■■■■■■■■■■
#=================== Show Hostname ===================
#コメントと同時にホストも表示する(0:off 1:on)
# Show hostname
$sw_host=0;
#■■■■■■■■■■ コメントのみの投稿を許可するか ■■■■■■■■■■
#=================== Comment Posting Allowance ===================
#コメントのみの投稿(0:許可しない 1:許可する)
#Allow visitors to post comments
$cm_sw=0;
#■■■■■■■■■■ 表示順序 ■■■■■■■■■■
#=================== Sorting Order ===================
#標準的な表示順序(0:最新イラスト順 1:最新レス順)
#Default sort type (0 = Sort by pictures, 1 = Sort by latest comment)
$def_sort=0;
#■■■■■■■■■■ ロック機構 ■■■■■■■■■■
#=================== Locking Method ===================
#ロック機構の方法(0:symlink関数(標準) 1:open関数 2:なし)
#File lock mode (0 = use symlink, 1 = use regular file, 2 = Don't use filelock)
$lock_mode=0;
#■■■■■■■■■■ 各種パスの設定(通常は変更する必要はありません) ■■■■■■■■■■
#=================== Filepath setup (not required to change) ===================
#お絵かきをする時に呼び出すファイルへのパス
#relative link for location of oekaki BBS file
$oefile="./oekaki.html";
#画像ファイルへのパス(内部パス)
#Internal path for storing pictures
$gzfile="./";
#画像ファイルへのパス(絶対パス)
#URL path for stored pictures
$gz2file="./";
#■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
#以下は、なるべく変更しないで下さい。レイアウトの変更などのために書き換える場合は、自己の責任において行なって下さい。
# Becareful about changing anything below this line. Alter at your own risk.
$back_message="Hit the back button on your browser to return.";
$moji1=$moji-1;
$moji3=$moji+1;
$moji5=$moji+3;
$lock_file ="./lock/count.lock";
$script = "picture.cgi";
$method = 'POST';
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else { $buffer = $ENV{'QUERY_STRING'}; }
@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;
&jcode'convert(*value,'sjis');
$value =~ s/</g;
$value =~ s/>/>/g;
$value =~ s/\"/"/g;
if ($name eq 'del') { push(@delete,$value); }
if ($name eq 'del_res') {$value =~ s/[^a-zA-Z0-9\/\:]//gs;push(@delres,$value); }
$FORM{$name} = $value;
}
$name = $FORM{'name'};
$name =~ s/\r//g;
$name =~ s/\n//g;
$title = $FORM{'title'};
$title =~ s/\r//g;
$title =~ s/\n//g;
$comment = $FORM{'comment'};
$comment =~ s/\r\n/ /g;
$comment =~ s/\r/ /g;
$comment =~ s/\n/ /g;
$email = $FORM{'email'};
$email =~ s/\r//g;
$email =~ s/\n//g;
$url = $FORM{'url'};
$url =~ s/^http\:\/\///;
$url =~ s/\r//g;
$url =~ s/\n//g;
$mode = $FORM{'mode'};
$sort = $FORM{'sort'};
$res_mode = $FORM{'res'};
$count_file = "./count";
$targetfile = "./data.txt";
$erasefile = "./erase.txt";
if ($sort eq "0"){$s_mode=0;}
elsif($sort eq "1"){$s_mode=1;}
else {$s_mode=$def_sort;}
if ($mode eq "msg") { ®ist; }
if ($mode eq "res_msg"){&res_msg;}
if ($mode eq "admin") { &pass; }
if ($mode eq "del") { &del; }
if ($mode eq "master_del") { &master_del; }
if ($mode eq "l_check") { &check_lock; }
if (open(FILE,"<$count_file")) {
$access = ;
close(FILE);
}
@res=();
$comments=0;
open(FILE,"<$targetfile");
while(){
chop;
($pic,$name,$mail,$http,$body,$date,$ip,$host,$title)=split("\t",$_);
$title =~ s/\r//g;
$title =~ s/\n//g;
if($pic =~ /[\d]/){
$rank{$pic*100+$res[$pic]}.="$pic\t$name\t$mail\t$http\t$body\t$date\t$ip\t$host\t$title";
$res[$pic]++;
if($s_mode==1){
$sort[$comments]=$pic;
$coms[$pic]=0;
$comments++;
}
}
}
close(FILE);
if($s_mode==1)
{
$pnum=$access;
for($i=$comments-1;$i>0;$i--)
{
if($coms[$sort[$i]]>0){}
else
{
$s[$pnum]=$sort[$i];
$coms[$sort[$i]]++;
$pnum--;
}
}
$i=$access;
while($i>$access-$lgnumber && $i>0)
{
if($res[$i]==0)
{
$s[$pnum]=$i;
$pnum--;
}
$i--;
}
}
@era=();
open(FILE,"<$erasefile");
while(){
$era[$_]=1;
}
close(FILE);
&head;
if ($NEWGIF eq '') {
print "