#!/usr/local/bin/perl # サーバーの環境に合わせて変更して下さい。 #-----------------------------------------------------------# # 罪と罰++ 二律背反 # # Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD # # Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] # # BLANK BOARD [ http://pom.to/ ] # #-----------------------------------------------------------# $ver = '公式条約 v1.0'; # バージョン情報(変更不可) #--- [注意事項] --------------------------------------------# # 1.このスクリプトは以下の利用規程に従って配布しています。 # # http://www24.big.or.jp/~obo/game/ore_/gild/ # #-----------------------------------------------------------# #=============================================================================== # 設定項目 #------------------------------------------------------------------------------- # 各種ファイル require './inc/ore_sub-bbs.cgi'; # 各種掲示板共通な設定項目読み込み $script = "./public.cgi"; # このスクリプトのパス $logfile = "./logdata/public_log.cgi";# ログファイルのパス $lockkey = 0; # ファイルロック(0=no 1=yes) $lockfile = "./public.lock"; # ロックファイル名 #------------------------------------------------------------------------------- # 環境設定 $title = "公式条約"; # タイトル名 $max = 200; # 最大保有記事数 $write_limit= 300; # この秒数の間は再度投稿ができない $com_limit = 4096; # コメントの最大文字数(半角換算) $tagkey = 0; # タグの許可 (0=no 1=yes) $nolink = 1; # URL宣伝排除 (0=no 1=yes) $br_mode = 1; # 改行モード (0=no 1=yes) # 機種別設定 if($mv_mode eq 'mv'){ # モバイル用設定 $log_last= 10; # 表示行数(モバイル) # BODYタグ装飾 $body = 'body bgcolor="black" text="white" link="pink" vlink="pink" alink="pink"'; $hr_color= 'white'; # 罫線の色(モバイル) }else{ # PC用設定 $log_last= 500; # 表示行数(PC) # BODYタグ装飾 $body = 'bgcolor="#111122" text="#ddddee" link="#ffddee" vlink="#ffddee" alink="#ffddee"'; } #=============================================================================== # 以下処理 基本的にこれ以下はいじらないように。 #------------------------------------------------------------------------------- # メイン処理 &axs_check; # アクセス制御 &decode; # フォームデコード &mandata_open; # 参加者ログ読み込み &get_time; # 日時取得 if ($mode eq "regist" && $com) { ®ist; } # 書き込み処理 &html; # ページ表示 #------------------------------------------------------------------------------- # 記事表示部 sub html { # 表示開始 &header; if($mv_mode eq 'mv'){ print <<"EOM"; $title

EOM } else{ print <<"EOM";
$title
〜 条約や同盟、さらに稟議など 〜
EOM } ($mv_mode eq 'mv') ? print qq|
\n|: print qq|
\n|; # ログを展開 open(IN,"$logfile") || &error("Open Error : $logfile"); local $log_last_flag=0; while () { $log_last_flag++; local($date,$nm,$camp,$com,$sogo,$addr,$host) = split(/<>/); $nm = qq|$nm [$sogo_p[$sogo]]| if($sogo); ($mv_mode eq 'mv') ? $com =~ s/ハァト/\&\#63726<\/font>/g : $com =~ s/ハァト/ゥ<\/span>/g ; ($mv_mode eq 'mv') ? print qq|$nm:$com [$camp_info[$camp][0] $date]
\n|: print qq|$nm [ $camp_info[$camp][0] $date ]
$com

\n|; last if $log_last_flag > $log_last; } close(IN); # 著作権表示(削除禁止) print "
\n"; ©right; exit; } #------------------------------------------------------------------------------- # ログ書き込み処理 sub regist { # ファイルロック if ($lockkey) { &lock; } # ログを読み込み open(IN,"$logfile") || &error("Open Error : $logfile"); @lines = ; close(IN); my @y1 = split(/<>/,$lines[0]); &error("暫く後に投稿してください。") if(($time<$y1[8]+$write_limit) && ($addr eq $y1[5])); # 最大記事数処理 while ($max <= @lines) { pop(@lines); } # ログ更新処理 unshift (@lines,"$date<>$DAT{'nm'}<>$DAT{'camp'}<>$com<>$DAT{'sogo'}<>$addr<>$host<>$agent<>$time<>\n"); open(OUT,">$logfile") || &error("Write Error : $logfile"); print OUT @lines; close(OUT); # ロック解除 if (-e $lockfile) { unlink($lockfile); } } #------------------------------------------------------------------------------- # HTMLのヘッダー sub header { print "Content-type: text/html\n\n"; print <<"EOM"; $title EOM if($mv_mode eq 'pc'){ print <<"EOM"; $css EOM } (!$_[0] && $mv_mode eq 'pc') ? print qq|\n| : print "\n" ; }