#!/usr/local/bin/perl
$ver = 'BBSROOM TypeI'; # バージョン情報
#======================#
# 設定するところ #
#======================#
# jcode.plが同一ディレクトリにある場合
require './jcode.pl';
require '../deny/deny.cgi';
require "../click/admgr.pl";
require './ad.cgi';
#広告を取得
#PC版ヘッダー&エラーページ表示
$add1_html = &admgr'get_ad('bbs', 'headertext');
#PC版フッター表示
$add2_html = &admgr'get_ad('bbs', 'footer');
$adi_html = &admgr'get_ad('bbs', 'docomo');
$ade_html = &admgr'get_ad('bbs', 'ezweb');
$ady_html = &admgr'get_ad('bbs', 'yahoo');
# 広告468挿入
$adprage = '';
# 広告text挿入
$adtprage = '
こちら';
sub init {
# スクリプトファイル名
$script = "./pres.cgi?room=$room";
# ログファイル
$logfile = "./user/$room\.log";
# 設定ファイル
$setfile = "./user/$room\.dat";
# ロックファイル名
$lockfile = "./lock/$room\.lock";
# 管理ファイル
$edtfile = "./edit.cgi?room=$room";
# 設定ファイル読み込み
&open_set;
}
# キャラクタGIF画像のディレクトリを指定
$imgurl = "http://www.bbsroom.com/bbs/icon2";
# 壁紙のあるディレクトリ
$gif_url = "http://www.bbsroom.com/bbs/icon2";
# 本文の文字大きさ(ポイント数:スタイルシートで有効)
$b_size = '11pt';
# 本文の文字のタイプ
$f_face= 'verdana,chicago,"MS Pゴシック"';
# アイコンを定義(上下は必ずペアで)
@icon1 = ('icon01.gif','icon02.gif','icon03.gif','icon04.gif','icon05.gif','icon06.gif','icon07.gif','icon08.gif','icon09.gif','icon10.gif','icon11.gif','icon12.gif','icon13.gif','icon14.gif','icon15.gif','icon16.gif','icon17.gif','icon18.gif','icon19.gif','icon20.gif','icon21.gif','icon22.gif','icon23.gif','icon24.gif','icon25.gif');
@icon2 = ('ライオン','トナカイ','イヌ','ウシ','ヤギ','ゾウ','ネコ','サル','ヒツジ','ウサギ','ペンギン','アシカ','キツネ','リス','トラ','ワニ','アライグマ','メロン','カキ','イチゴ','スイカ','モモ','ブタ','ネズミ','クマ');
# 管理者専用アイコン機能 (0=no 1=yes)
# --> 【使い方】記事投稿時に「管理者アイコン」を選択し、削除キーに
# 「管理用パスワード」を入力して下さい。
$my_icon = 1;
# 管理者専用アイコンの「ファイル名」を指定
$my_gif = 'admin.gif';
# アイコンモード (0=no 1=yes)
$icon_mode = 1;
#居住地の名前
@add1 = ('北海道','東 北','関 東','甲信越','東 海','北 陸','近 畿','中 国','四 国','九 州','沖 縄','海 外','不 明','ひみつ');
# 返信がつくと親記事をトップへ移動 (0=no 1=yes)
$top_sort = 1;
# ファイルロック形式
# --> 0=no 1=symlink関数 2=open関数
$lockkey = 1;
# 自動リンク (0=no 1=yes)
$autolink = 1;
# Eメールアドレスの必須入力 (0=no 1=yes)
$in_email = 0;
# 家アイコンの使用 (0=no 1=yes)
$home_icon = 1;
$home_gif = "home.gif"; # 家アイコンのファイル名
$home_wid = 25; # 画像の横サイズ
$home_hei = 25; # 〃 縦サイズ
# メールアイコンの使用 (0=no 1=yes)
$mail_icon = 1;
$mail_gif = "mail.gif"; # MAILアイコンのファイル名
$mail_wid = 25; # 画像の横サイズ
$mail_hei = 25; # 〃 縦サイズ
# 1ページ当たりの記事表示数 (親記事)
$p_log = 5;
# sendmailパス(メール通知する時)
$sendmail = '/usr/lib/sendmail';
# 他サイトから投稿排除する場合 (http://から書く)
$base_url = "http://www.bbsroom.com/cgi-local/bbs2/pres.cgi";
# 日本語チェック
$jp_wd = 1;
# 文字色の設定。
@COLORS = ('#4b6b8f','#4e60b4','#408080','#4b965c','#89669b','#a26faa','#c95a6b','#e67531');
# 記事表示部等の枠の色(レスが付いたときのラインの色もこの色が反映されます)
# この色はユーザーが設定しない場合にのみ反映されます。
$tt_color = "#f0f7fb";
#記事を書きこむときなどのSubmitボタンの背景色
# この色はユーザーが設定しない場合にのみ反映されます。
$sb_col = "#d1e0ef";
#記事を書きこむときなどのSubmitボタンの文字色
# この色はユーザーが設定しない場合にのみ反映されます。
$sb_fcol = "#4681a4";
#記事表示部の横幅サイズに関する設定(ピクセルまたは%で)
$waku_w = '550'; #記事全体の横幅サイズ
# 投稿フォーム改行形式 (soft=手動 hard=強制)
$wrap = 'soft';
$banner1 = ''; # 掲示板上部に挿入
$hikoukoku = 'isample';# 非広告ユーザ
# webdo CROOZ メガバナー エラーページ表示
##-------- パラメータのセット -------
my $partner_id = 7318; #パートナーID(数値)
my $strQuery = ""; #キーワード(エンコード等していない文字列)
my $ad_number = 1; #取得広告数(数値)
my $allow_unmutched = "Y"; #マッチングしない広告の許可(Y/N)
my $segment = "0,0"; #ユーザー情報(例:30歳男性)
##-----------------------------------
my $ret = CROOZ::crooz_ad(
$partner_id,
$strQuery,3,
$ENV{'REMOTE_ADDR'},
$ENV{'HTTP_USER_AGENT'},
$allow_unmatched,
$segment,
$ENV{'HTTP_X_DCMGUID'},
$ENV{'HTTP_X_UP_SUBNO'},
$ENV{'HTTP_X_JPHONE_UID'}
);
# アクセス解析
$analytics = '
';
# アクセス制限(半角スペースで区切る、アスタリスク可)
# → 拒否ホスト名を記述(後方一致)【例】*.anonymizer.com
$deny_host = '';
# → 拒否IPアドレスを記述(前方一致)【例】210.12.345.*
$deny_addr = '202.105.* 123.156.* 101.66.* 175.44.* 112.111.* 36.248.* 58.48.* 178.32.* 192.74.250.* 188.165.* 60.182.* 121.8.* 61.152.170.* 210.13.101.* 116.16.* 116.224.* 58.35.* 124.76.* 59.56.* 113.64.* 220.170.32.* 222.245.* 222.184.* 118.248.* 59.136.166.* 58.32.* 58.60.* 59.56.* 59.32.* 60.160.* 60.161.* 60.164.* 60.178.* 60.181.* 61.130.* 61.134.0.* 61.140.* 61.141.* 61.144.* 61.145.* 61.146.* 61.154.* 61.157.* 61.173.* 61.177.* 61.178.* 61.180.* 61.183.* 61.145.* 121.224.* 121.236.* 124.114.* 124.72.* 125.73.* 125.74.* 125.88.* 125.118.* 218.13.* 218.63.* 218.64.* 218.65.* 218.77.* 218.78.* 218.80.* 218.81.* 218.83.* 218.86.* 218.87.* 218.88.* 218.90.* 218.94.* 219.128.* 219.129.* 219.130.* 219.131.* 219.132.* 219.133.* 219.134.* 219.135.* 219.136.* 219.137.* 219.144.* 219.152.* 219.153.* 220.163.* 220.164.* 220.165.* 220.173.* 220.174.* 220.175.* 220.176.* 220.184.* 220.188.* 221.225.* 221.227.* 221.229.* 221.232.* 221.235.* 222.170.* 220.175.* 222.184.* 222.186.* 222.187.* 222.188.* 222.189.* 222.208.* 222.210.* 222.212.* 222.213.* 222.214.* 222.216.* 222.217.* 222.218.* 222.64.* 222.71.* 222.76.* 222.79.* 222.84.* 222.94.* 121.204.* 61.159.214.* 59.40.* 125.80.* 125.88.* 58.37.* 222.170.* 59.52.* 218.78.* 220.187.128.* 222.170.* 218.19.* 222.170.* 124.236.* 121.32.* 60.182.* 222.208.* 116.199.64.* 125.88.* 121.56.* 114.224.* 183.* 123.152.* 218.19.* 117.80.* 119.128.* 124.228.* 125.113.* 5.39.112.* 60.182.159.* 60.182.157.* 125.112.* 218.72.* 14.23.* 168.62.*';
# → 携帯IPアドレスを記述(前方一致)【例】210.12.345.*
# アクセス制限(半角スペースで区切る、アスタリスク可)
$mobileip = '';
#======================#
# 設定完了 #
#======================#
## --- メイン処理
&decode;
&init;
&axscheck;
if ($mode eq 'regist') { ®ist; }
if ($mode eq 'find') { &find; }
if ($mode eq 'howto') { &howto; }
if ($mode eq 'enter') { &enter; }
if ($mode eq 'admin') { &admin; }
if ($mode eq 'usrdel') { &usrdel; }
if ($mode eq 'res') { &res_msg; }
if ($mode eq 'image') { ℑ }
if ($mode eq 'formtel') { &formtel; }
&html;
## --- 設定ファイル認識
sub open_set {
local($type);
unless (-e $setfile) { &error1("指定された掲示板はありません。"); }
else {
open(IN,"$setfile") || &error1("Open Error : \$setfile");
$SetData = ;
close(IN);
}
($type,$title,$t_size,$t_color,$t_face,$t_gif,$home,$b_gif,$in_col,$in_fcol,$bgcolor,$text,$link,$vlink,$alink,$max,$mail,$pw,$sub_color,$tbl_color,$waku_color,$deny) = split(/<>/, $SetData);
# 記事題名の色とテーブル下地の色をデフォルト定義
if (!$sub_color) { $sub_color = $t_color; }
if (!$tbl_color) { $tbl_color = "FFFFFF"; }
if (!$waku_color) { $waku_color = $tt_color; }
if (!$in_col) { $in_col = $sb_col; }
if (!$in_fcol) { $in_fcol = $sb_fcol; }
# アクセス拒否
if ($deny) {
&get_host;
@DENY = split(/\s+/, $deny);
$dflag=0;
foreach (@DENY) {
if ($host =~ /$_/i) { $dflag=1; last; }
}
if ($dflag) { &error("現在アクセスできません。"); }
}
}
#-------------------------------------------------
# アクセス制限
#-------------------------------------------------
sub axscheck {
# IP&ホスト取得
$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};
if ($gethostbyaddr && ($host eq "" || $host eq $addr)) {
$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2);
}
# IPチェック
local($flg);
foreach ( split(/\s+/, $deny_addr) ) {
s/\./\\\./g;
s/\*/\.\*/g;
if ($addr =~ /^$_/i) { $flg = 1; last; }
}
if ($flg) {
&error("アクセスを許可されていません");
# ホストチェック
} elsif ($host) {
foreach ( split(/\s+/, $deny_host) ) {
s/\./\\\./g;
s/\*/\.\*/g;
if ($host =~ /$_$/i) { $flg = 1; last; }
}
if ($flg) {
&error("アクセスを許可されていません");
}
}
if ($host eq "") { $host = $addr; }
}
#----------------#
# 記事表示処理 #
#----------------#
sub html {
&header;
# タイトル部
print "\n";
if ($banner1 ne "") { print "$banner1\n"; }
if ($imode =~ /1|2|3/) {
print "";
print "$title
\n";
} if ($imode == 0) {
if ($t_gif) { print "
\n";
print "
\n"; }
else {
print "";
print "$title\n";
print "
\n";
}
}
print <<"EOM";
重要なお知らせ
EOM
if ($imode == 1) {
&jcode'convert(*adi_html,'sjis');
print "$adi_html\n";
}
if ($imode == 2) {
&jcode'convert(*ady_html,'sjis');
print "$ady_html\n";
}
if ($imode == 3) {
&jcode'convert(*ade_html,'sjis');
print "$ade_html\n";
}
if ($imode =~ /1|2|3/) {
print "
\n";
print "$emo1新規投稿
\n";
}
if ($imode == 0) {
print "[HOME]\n";
print "[HOW TO]\n";
print "[SEARCH]\n";
# ログファイルのサイズを取得 広告を消す
$size = -s "$logfile";
if ($size < 1000) {}
elsif ($room eq $hikoukoku) {}
else {
#&jcode'convert(*add1_html,'sjis');
#print "[$add1_html] \n";
print "[$adtprage] \n";
}
print <<"EOM";
[ADMIN]
EOM
# フォームを表示
&form_view;
print "\n";
}
# ページ区切り処理
$start = $page + 1;
$end = $page + $p_log;
open(IN,"$logfile") || &error("Open Error : $logfile");
$top = ;
$i=0; $j=0;
while ($_ = ) {
($no,$reno,$date,$name,$mail,$sub,
$com,$url,$add,$host,$pw,$color,$icon) = split(/<>/, $_);
if ($reno eq "") { $i++; $j++; }
if ($i < $start) { next; }
if ($i > $end) { next; }
if ($imode =~ /1|2|3/) {
} if ($imode == 0) {
if ($mail_icon && $mail) { $mail = "
"; }
elsif (!$mail_icon && $mail) { $mail = "<MAIL>"; }
if ($home_icon && $url) { $url = "
"; }
elsif (!$home_icon && $url) { $url = "<WEB>"; }
if (!$icon_mode) { $com = "$com
"; }
if ($home_icon) { $hm_wid = $home_wid + $mail_wid + 20; }
if (!$reno && $flag) {
print "
\n";
$flag=1;
}
}
if (!$reno) {
if ($imode =~ /1|2|3/) {
} if ($imode == 0) {
print "\n";
print "\n";
$flag=1;
}
}
if ($imode =~ /1|2|3/) {
if (!$reno) {
print " \n";
print "[NO.$no]$sub \n";
if ($mail) { $name = "$name"; }
print "$name";
print "[$add] \n";
print "$date\n";
} else {}
} if ($imode == 0) {
if ($reno) { print " \n"; }
print " | \n";
if ($reno) { print "
| "; }
print "$sub ";
print "FROM:$name [$add] ";
print " | \n";
if (!$reno) {
print " | \n";
} else {
print " \n";
}
print "
| \n";
if ($reno) { print "
| \n"; }
}
# アイコンモード
if ($imode =~ /1|2|3/) {
} if ($imode == 0) {
if ($icon_mode) { print " | "; }
print "$com";
print " |
\n";
print "DATE:$date \n";
print "No\.$no | \n";
print " $mail $url | \n";
}
}
close(IN);
if ($imode =~ /1|2|3/) {
} if ($imode == 0) {
print " |
|
\n";
}
print "\n";
if ($imode == 1) {
print "
\n";
&jcode'convert(*adi_html,'sjis');
print "$adi_html\n";
}
if ($imode == 2) {
print "
\n";
&jcode'convert(*ady_html,'sjis');
print "$ady_html\n";
}
if ($imode == 3) {
print "
\n";
&jcode'convert(*ade_html,'sjis');
print "$ade_html\n";
}
if ($imode =~ /1|2|3/) {
print "\n";
print "
\n";
}
if ($imode == 0) {
print "
\n";
}
$next_page = $page + $p_log;
$back_page = $page - $p_log;
if ($imode =~ /1|2|3/) {
if ($back_page >= 0) {
print "$emo2前ページ
\n";
}
if ($next_page < $i) {
print "$emo3次ページ\n";
}
} if ($imode == 0) {
print "\n";
if ($back_page >= 0) {
print " | \n";
}
if ($next_page < $i) {
print " | \n";
}
print "
\n";
# 著作権表示部
print "
\n";
}
if ($imode =~ /1|2|3/) {
print "\n";
} if ($imode == 0) {
# ログファイルのサイズを取得 広告を消す
$size = -s "$logfile";
if ($size < 1000) {}
elsif ($room eq $hikoukoku) {}
#else {print "$googlei\n";}
else {
#&jcode'convert(*add2_html,'sjis');
#print "$add2_html\n";
print "$adprage\n";
}
print "
\n";
print "
\n";
}
if ($imode =~ /1|2|3/) {
print "\n";
print "
BBSROOM\n";
print "