#!/usr/local/bin/perl
## Fantasy Board v1.5
## (C)1997-2000 Kent Web (00/05/04)
## Mail: webmaster@kent-web.com
## Home: http://www.kent-web.com/
$ver = 'Fantasy v1.5'; # バージョン情報
#--- [注意事項] ------------------------------------------------#
# 1. このスクリプトはフリーソフトです。このスクリプトを使用した #
# いかなる損害に対して作者は一切の責任を負いません。 #
# 2. 設置に関する質問はサポート掲示板にお願いいたします。 #
# 直接メールによる質問は一切お受けいたしておりません。 #
#---------------------------------------------------------------#
#============#
# 設定 #
#============#
require './jcode.pl';
require "/home/systems/cgi-bin-common/deny-lib.pl";
&check_deny($ENV{'REMOTE_ADDR'}, $ENV{'REMOTE_HOST'}, 31);
# タイトル名
$title = "KaPoLo Club";
# タイトル文字の色
$t_color = "#FFFF66";
# タイトル文字のタイプ
$t_face = "Arial";
# タイトル文字サイズ(スタイルシートで有効)
$t_point = '18pt';
# スクリプト名
$script = "./fantasy.cgi";
# ログファイル名
$logfile = "./fantasy.log";
# Adminパスワード
$pass = 'supersaka';
# 最大記事数(これを超える記事は古い順にRemoveされます)
$max = 1000;
# 戻り先
$home = "http://saka.syste.ms/index.html";
# 画像格納ディレクトリ(絶対パスなら http://から記述)
$imgurl = ".";
# 背景色、文字色
$bgrnd = ""; # 壁紙
$bgcol = "#FFCC99"; # 背景色
$text = "#222222"; # 文字色
$link = "#FF7777"; # リンク色:未訪問
$vlink = "#FF7777"; # リンク色:既訪問
$alink = "#CC66FF"; # リンク色:訪問中
# ワンポイントカラー
$onepnt = "#008000";
# method形式 (POST/GET)
$method = 'POST';
# タグ許可 (0=no 1=yes)
$tagkey = 0;
# URLの自動リンク (0=no 1=yes)# --> タグ許可の場合は no とすること。
$autolink = 1;
# 1ページあたりの記事表示件数
$p_log = 10;
# ホスト名取得に gethostbyaddr関数を使用 (0=no 1=yes)
$gethostbyaddr = 1;
# ロックファイル機構 (0=no 1=symlink関数 2=open関数)
# --> ロックファイル機構を使用する場合ロックファイルを生成するディレクトリ
# のパーミッションは 777 に設定する
$lockkey = 1;
# ロックファイル名
$lockfile = "./fantasy.lock";
# メール通知機能
# 0=no
# 1=yes:自分の投稿記事もメール通知する
# 2=yes:自分の投稿記事はメール通知しない
$mailing = 0;
# sendmailのパス(メール通知する場合)
$sendmail = '/usr/sbin/sendmail';
# メール通知先アドレス(メール通知する場合)
$mailto = 'saka@syste.ms';
# Location
@areas = (
'USA','Japan','Thailand','Asia','North America','South America', 'Europe','Africa','Antartica','Arctic','Australia','Earth','Moon','Another Galaxy','Another Dimension');
# キャラクタを指定(上下の配列はペアで)
@icon1 = (
'f01.gif','f02.gif','f03.gif','f04.gif','f05.gif',
'f06.gif','f07.gif','f08.gif','f09.gif','f10.gif',
'f11.gif','f12.gif','f14.gif','f15.gif','f16.gif','f17.gif','f18.gif','f19.gif','f20.gif',
'm01.gif','m02.gif','m03.gif','m04.gif','m05.gif',
'm06.gif','m07.gif','m08.gif','m09.gif','m10.gif','m11.gif','m12.gif','bo.gif','bo2.gif',
'cocoanut.gif','coffee.gif','marshmallow.gif','ham.gif','scratch.gif');
@icon2 = (
'f01','f02','f03','f04','f05',
'f06','f07','f08','f09','f10',
'f11','f12','f14','f15','f16','f17','f18','f19','f20',
'm01','m02','m03','m04','m05',
'm06','m07','m08','m09','m10','m11','m12','Bo','Bo 2',
'Cocoanut','Coffee','Marshmallow','hamster','scratch');
# 管理者名
$master = "Saka";
# 返信Messageの文字色
$mas_color = "#C100C1";
# 管理者用アイコン
$mas_icon = "master.gif";
# タグ広告挿入オプション (FreeWebなど)
# → の代わりに「広告タグ」を挿入する。
# → 広告タグ以外に、MIDIタグ や LimeCounter等のタグにも使用可能です。
$banner1 = ''; # 掲示板上部に挿入
$banner2 = ''; # 掲示板下部に挿入
# アクセス制限(拒否するホスト名を記述)
@deny = (
"anonymizer",
"cache*.*.interlog.com",
"",
"",
"",
"",
"",
"",
""
);
# タイトル画像を使う場合
# --> 画像URLを http:// から記述
$ImgT = "";
$ImgW = "150"; # 画像横幅
$ImgH = "50"; # 画像縦幅
#============#
# 設定完了 #
#============#
# Imageディレクトリ調整
$imgurl =~ s/\/$//;
&decode;
&axs_check;
if ($mode eq 'regist') { ®ist; }
if ($mode eq 'find') { &find; }
if ($mode eq 'howto') { &howto; }
if ($mode eq 'admin1') { &admin1; }
if ($mode eq 'admin2') { &admin2; }
if ($mode eq 'usrdel') { &usrdel; }
if ($mode eq 'image') { ℑ }
if ($mode eq 'res') { &res_msg; }
&html;
#----------------#
# アクセス制限 #
#----------------#
sub axs_check {
if ($deny[0]) {
# ホスト名を取得
&get_host;
$flag=0;
foreach (@deny) {
if ($_ eq '') { last; }
$_ =~ s/\*/\.\*/g;
if ($host =~ /$_/) { $flag=1; last; }
}
if ($flag) { &error("Access Denied") }
}
}
#----------------#
# 記事表示処理 ##----------------#
sub html {
# ブラウザ情報を取得
&get_agent;
# クッキー情報を取得
&get_cookie;
&header;
print "
\n";
if ($banner1 ne "") { print "$banner1\n"; }
# タイトル部
if ($ImgT) {
print "
\n";
}
else {
print "$title\n";
}
# [Help]
print <<"EOM";
[Return to Top]
[Search]
[Admin]
EOM
# ページ区切り処理
$start = $page + 1;
$end = $page + $p_log;
open(IN,"$logfile") || &error("Open Error : $logfile");
$i=0; $j=0;
while ($_ = ) {
$i++; $j++;
if ($i < $start) { next; }
if ($i > $end) { next; }
($no,$date,$name,$mail,$area,$icon,
$icon2,$com,$res,$url,$host,$pw) = split(/<>/, $_);
if ($mail) { $name = "$name"; }
if ($url) { $url = "
"; }
# 1ワクの大きさ
$pix=18;
# 記事を表示
print "