Initial commit of original files
This commit is contained in:
@@ -0,0 +1,217 @@
|
||||
#!/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 = "./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";
|
||||
<b>$title</b>
|
||||
<form name="ore_" method="$method" action="$ore_game_">
|
||||
<input type=hidden name=id value="$id">
|
||||
<input type=hidden name=pw value="$pw">
|
||||
<input type=hidden name=cmd value="-1">
|
||||
<input type=submit value="戻る">
|
||||
</form>
|
||||
EOM
|
||||
}
|
||||
else{
|
||||
|
||||
print <<"EOM";
|
||||
<table>
|
||||
<tr>
|
||||
<td width="220"><img src="./imgs/title_game.png" width="220" height="52"></td>
|
||||
<td valign="bottom" align="left">
|
||||
<b>$title</b><br>
|
||||
<small>~ 悠久の大地の歩み ~</small>
|
||||
</td>
|
||||
</tr>
|
||||
<form name="ore_" method="$method" action="$ore_game_">
|
||||
<tr>
|
||||
<td align="right" colspan="2">
|
||||
<input type=hidden name=id value="$id">
|
||||
<input type=hidden name=pw value="$pw">
|
||||
<input type=hidden name=cmd value="-1">
|
||||
<input type=submit value="戻る" class="button1" style="width:80px">
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
</table>
|
||||
EOM
|
||||
}
|
||||
|
||||
($mv_mode eq 'mv') ?
|
||||
print qq|<hr color=\"$hr_color\">\n|:
|
||||
print qq|<hr size="8" color="#666699">\n|;
|
||||
|
||||
# ログ読み込み
|
||||
open(IN,"$logfile") || &error("Open Error : $logfile");
|
||||
my @lines = <IN>;
|
||||
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]/<span style="color:$camp_info[$_][1]">$camp_info[$_][0]<\/span>/g;
|
||||
}
|
||||
}
|
||||
print "<li>$y1[43]<hr>\n";
|
||||
}
|
||||
|
||||
# 著作権表示(削除禁止)
|
||||
print "<hr>\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/(<br>){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";
|
||||
<html>
|
||||
<head>
|
||||
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
|
||||
<title>$title</title>
|
||||
EOM
|
||||
print "$css" if($mv_mode eq 'pc');
|
||||
print "</head>\n<body $body>\n";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user