#!/usr/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 = "./hist.cgi"; # このスクリプトのパス
$logfile = "./logdata/hist_log.cgi"; # ログファイルのパス
#-------------------------------------------------------------------------------
# 環境設定
$title = "과거의 영광"; # タイトル名
$maxlog = 60; # 最大記録行数
# 機種別設定
if($mv_mode eq 'mv'){
# モバイル用設定
$log_last= 15; # 表示行数(モバイル)
# BODYタグ装飾
$body = 'bgcolor="black" text="white" link="pink" vlink="pink" alink="pink"';
$hr_color= 'white'; # 罫線の色(モバイル)
}else{
# PC用設定
$log_last= 50; # 表示行数(PC)
# BODYタグ装飾
$body = 'bgcolor="#111122" text="#ddddee" link="#ffddee" vlink="#ffddee" alink="#ffddee" style="font-size:14px"';
}
#===============================================================================
# 以下処理 基本的にこれ以下はいじらないように。
#-------------------------------------------------------------------------------
# メイン処理
&axs_check;
&decode_hist;
$ore_game_ =($mode eq 'guest') ? $index : $ore_game ;
&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");
my @lines = ;
close(IN);
# 行数調整
if($#lines > $maxlog){
foreach(0 .. $#lines-$maxlog){ shift(@lines); }
}
open (OUT,">$logfile") || &error("open error:$logfile");
print OUT @lines;
close(OUT) or die "Can't close : $!";
# 記事展開
@lines = reverse(@lines);
foreach(0 .. $log_last){
last if(!$lines[$_]);
my @y1 = split(/,/,$lines[$_]);
$y1[43] =~ s/wr_mes;//g;
if($mv_mode eq 'pc'){
foreach(1 .. $#camp_info){
$y1[43] =~ s/$camp_info[$_][0]/$camp_info[$_][0]<\/span>/g;
}
}
print "$y1[43]
\n";
}
# 著作権表示(削除禁止)
print "
\n";
©right;
exit;
}
#-------------------------------------------------------------------------------
# デコード処理
sub decode_hist {
local($buffer, @pairs, $name, $value);
$post_flag=0;
if($ENV{'REQUEST_METHOD'} eq "POST"){
$post_flag=1;
&error("전송량이 너무 많습니다") if($ENV{'CONTENT_LENGTH'}>8192);
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}else{
$buffer = $ENV{'QUERY_STRING'};
&error("전송량이 너무 많습니다") if(length($buffer)>7500)
}
@pairs = split(/&/, $buffer);
foreach (@pairs) {
($name,$value) = split(/=/);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# 荒らし処理 1
$value =~ s/(
){4,}//g;
$value =~ s/( | ){6,}//g;
$value =~ s/\r//g;
$value =~ s/\n//g;
# 記号置換え 1
$value =~ s/\s/ /g;
$value =~ s/</g;
$value =~ s/>/>/g;
$value =~ s/\"/"/g;
# 記号置換え 2
$value =~ s/\?/?\;/g;
$value =~ s/,/,\;/g;
$value =~ s/'/'\;/g;
$value =~ s/`/`\;/g;
$value =~ s/\;/;\;/g;
$value =~ s/\\/\\;/g;
$value =~ s/\|/|\;/g;
$value =~ s/\///\;/g;
$value =~ s/\./.\;/g;
# 文字コードをシフトJIS変換
# &jcode'convert(*value, "sjis", "", "z");
$in{$name} = $value;
}
$pw = $in{'pw'}; if(length($in{'pw'})>8) { &error("글자 수 오류입니다 3"); }
$id = $in{'id'}; if(length($in{'id'})>24) { &error("글자 수 오류입니다 4"); }
if ($base_url) {
$ref_url = $ENV{'HTTP_REFERER'};
$ref_url =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if ($ref_url !~ /$base_url/i) { &error("올바르지 않은 접근입니다"); }
}
}
#-------------------------------------------------------------------------------
# HTMLのヘッダー
sub header {
print "Content-type: text/html\n\n";
print <<"EOM";
$title
EOM
print "$css" if($mv_mode eq 'pc');
print "\n\n";
}