#!/usr/local/bin/perl
## Fantasy Board v0.82 : ベータ版
## (C)1997-1999 Kent Web (1999/10/11)
## Mail: webmaster@kent-web.com
## Home: http://www.kent-web.com/
$ver = 'Fantasy v0.82'; # バージョン情報(修正不要)
## ---[注意事項ほか]--------------------------------------------------
## 1. このスクリプトはフリーソフトです。このスクリプトを使用したいか
## なる損害に対して作者は一切の責任を負いません。
## 2. 設置に関する質問はサポート掲示板にお願いいたします。メールによる
## 質問はご遠慮ください。
## -------------------------------------------------------------------
#============#
# 設定 #
#============#
#require './jcode.pl';
require '../bin/jcode.pl';
# タイトル名
$title = "Guest Book";
# タイトル文字の色
$t_color = "#0000DD";
# タイトル文字のタイプ
$t_face = "MS Pゴシック";
# スクリプト名
$script = "fantasy.cgi";
# ログファイル名
$logfile = "../bin/fantasy.log";
# 管理用パスワード
$pass = '0708';
# 最大記事数(これを超える記事は古い順に削除されます)
$max = 50;
# 戻り先
#$home = "../index.html";
$home = "../src/chaichan3.htm";
# 画像格納ディレクトリ(絶対パスなら http://から記述)
$imgurl = "../img";
# 背景色、文字色
$bgrnd = ""; # 壁紙
$bgcol = "#88AAFF"; # 背景色
$text = "#800000"; # 文字色
$link = "#0000FF"; # リンク色:未訪問
$vlink = "#800080"; # リンク色:既訪問
$alink = "#DD0000"; # リンク色:訪問中
# ワンポイントカラー
$onepnt = "#008000";
# method形式 (POST/GET)
$method = 'POST';
# タグ許可 (0=no 1=yes)
$tagkey = 0;
# 1ページあたりの記事表示件数
$p_log = 10;
# ホスト名取得に gethostbyaddr関数を使用 (0=no 1=yes)
$gethostbyaddr = 1;
# ロックファイル機構 (0=no 1=symlink関数 2=open関数)
# --> ロックファイル機構を使用する場合ロックファイルを生成するディレクトリ
# のパーミッションは 777 に設定する
$lockkey = 2;
# ロックファイルディレクトリ
$lockdir = "../bin";
# ロックファイル名
$lockfile = "fantasy.lock";
# メール通知機能
# 0=no
# 1=yes:自分の投稿記事もメール通知する
# 2=yes:自分の投稿記事はメール通知しない
$mailing = 0;
# sendmailのパス(メール通知する場合)
$sendmail = '/usr/lib/sendmail';
# メール通知先アドレス(メール通知する場合)
$mailto = 'foo@host.ne.jp';
# 居住地
@areas = (
'北海道','東北','関東','甲信越','東海','北陸','近畿',
'中国','四国','九州','外国','地球外');
# キャラクタを指定(上下の配列はペアで)
@icon1 = (
'boy1.gif','boy2.gif','seinen.gif','girl1.gif','girl2.gif',
'ol1.gif','ol2.gif','ol3.gif','china.gif','cook.gif','piero.gif',
'dog.gif','cat.gif','mouse.gif','pig.gif','hiyoko.gif','flog.gif');
@icon2 = (
'少年1','少年2','青年','少女1','少女2',
'OL風1','OL風2','OL風3','中国風','コック風','ピエロ',
'子犬','子猫','子ネズミ','子ブタ','ヒヨコ','カエル');
# 管理者名
$master = "ちゃいちゃんパパ";
# 返信メッセージの文字色
$mas_color = "#C100C1";
# 管理者用アイコン
$mas_icon = "master.gif";
# アクセス制限(拒否するホスト名を記述)
@deny = (
"anonymizer",
"cache*.*.interlog.com",
"",
"",
"",
"",
"",
"",
""
);
#============#
# 設定完了 #
#============#
# ロックファイルを再定義
$lockfile = "$lockdir\/$lockfile";
# イメージディレクトリ調整
$imgurl =~ s/\/$//;
&decode;
&axs_check;
if ($mode eq 'regist') { ®ist; }
if ($mode eq 'find') { &find; }
if ($mode eq 'howto') { &howto; }
if ($mode eq 'admin') { &admin; }
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("アクセスを許可されていません","no") }
}
}
## --- 記事表示処理
sub html {
# ブラウザ情報を取得
&get_agent;
# クッキー情報を取得
&get_cookie;
&header;
print <<"EOM";
$title
[トップに戻る]
[使い方]
[ワード検索]
[管理用]
EOM
# ページ区切り処理
$start = $page + 1;
$end = $page + $p_log;
open(IN,"$logfile") || &error("Open Error : $logfile","no");
$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 = "
"; }
# 記事を表示
print "\n";
# 反転対象部分1
if (!$flag) {
print " | \n";
print "\n";
print "\n";
print "| | \n";
}
else {
print "\n";
print "\n";
}
print " | \n";
print " | \n";
print " | \n";
# 反転対象部分2
if ($flag == 0) {
print "";
print " | \n";
}
else {
print " | \n";
# print " | \n";
print " \n";
print "";
}
print "| | \n";
print "\n";
print "[$no] $name [$area] ";
print "$date $url \n";
print "$com \n";
# 管理者レス
if ($res) {
print " \n";
print "| | ";
print " | \n";
print "$res \n";
print "[ From $master ] | \n";
print " \n";
}
print " | | \n";
if ($flag == 1) {
print " | \n";
}
print " ";
# 反転対象部分3
if ($flag == 0) {
print "| | \n";
}
print " | \n";
print " | \n";
print " | \n";
if ($flag == 1) {
print " | \n";
}
print " \n";
if ($flag == 1) {
print " | \n";
print " \n";
}
print " | \n";
print "
\n";
if ($flag == 0) { $flag = 1;}
else { $flag = 0; }
}
close(IN);
$next_page = $page + $p_log;
$back_page = $page - $p_log;
print "\n";
print " \n";
# 著作権表示(削除不可)
print "\n";
print "- Fantasy Board -\n";
print "\n";
print " |