#!/usr/local/bin/perl
# ▼=============================================================▼
# --== LINK COLLECTION Ver.2.05 ==--
# ---------------------------------------------------------------
# 使用上のご注意
# ★ このソフトはフリーソフトです。
# ★ このソフトの使用による、機器又はデータの破損および損失等に作者は一切の責任を負いません。
# ★ このソフトの商用利用、再配布、著作権表示部分の消去はお断りします。
# ★ 改造・改編は自由です。「素敵な機能を付加された方は、ぜひソースください。」
# ★ 設置・運用等におけるトラブルは、まずは作者又は著作権者のWEBサイトをご覧ください。
# ★ FAQ掲示板及び、電子メールにてできる限りのトラブルに対する応対はしております。
#
# ☆ 作者 SHIRO−KAPP
# E-mail kappa@ultinet.co.jp
# HOME-PAGE http://www.ultinet.co.jp/wmcp/
# このソフトの最終更新日は 99/011/02 です。
# このソフトに使用している、データ、画像などの著作権は、(有)アルティネットにあります。
# ▲=============================================================▲
# ▼=============================▼
# ユーザーごとの変数を定義 (編集可能)
# -----------------------------
$TITLETAG = 'DBCJ LINK COLLECTION (DISCUS BREEDERS CLUB OF JAPAN)'; #タイトル(ヘッドタグ内)
$TOPTAG = '
';
#文字にする場合文字列を記述(例:みんなの掲示板)
$BODY = '
';
#ボディタグ
$BODY_2='';
#管理、登録、修正モード用ボディタグ
$STYLE = '';
#スタイルシートを適用する場合(使用方法はlink.cssを見てください。)
$COL1="#FF9933"; #メニュー部分のセル背景色
$COL2="#FFFFFF"; #メニュー部分のセル文字色
$LOCK_KEY = 1; #ロック処理の可否( 0=NO , 1=YES )
#シンボリックリンクを許可していないサーバーでは使用不可
$MAX = 10; #1ページ当たりのの最大表示件数
$IMG_DIR = "./img"; #画像格納フォルダ
$HOME ="http://discus.powerbean.jp/"; #戻りのURL
$SCRIPT = "links.cgi"; #このファイルの名前
$LOGFILE = "link.log"; #記事保存ファイル
$K_PASS = 'discus8'; #管理モード移行用パスワード
@GENRE_NAME=('全件表示','ディスカスHP(個人)','ディスカスショップ(商用)','ディスカス飼育に役立つHP','水草関係','アクア全般','その他ペット','その他');
@GENRE_IMG=('','sc.gif','cg.gif','midi.gif','etc.gif','air.gif','drive.gif','game.gif','news.gif','serch.gif','sports.gif','food.gif','friend.gif','danger.gif','other.gif');
# ▲=============================▲ (編集ここまで)
# ▼=============================▼
# CGIライブラリの呼び出し
# -----------------------------
require "./cgi-lib.pl";
require "./jcode.pl";
# ▲=============================▲
# ▼=============================▼
# 連想配列inにデータをセット
# -----------------------------
&ReadParse;
# ▲=============================▲
# ▼=============================▼
# 連想配列から各変数にデータを格納
# -----------------------------
$NAME = $in{"NAME"};
$NAME =~ s/\"/"/g;
$NAME =~ s/</g;
$NAME =~ s/>/>/g;
$TITLE = $in{"TITLE"};
$TITLE =~ s/\"/"/g;
$TITLE =~ s/</g;
$TITLE =~ s/>/>/g;
$URL = $in{"URL"};
$URL =~ s/\"/"/g;
$URL =~ s/</g;
$URL =~ s/>/>/g;
$COMM = $in{"COMM"};
$COMM =~ s/\"/"/g;
$COMM =~ s/</g;
$COMM =~ s/>/>/g;
$COMM =~ s/\r\n/
/g;
$COMM =~ s/\r|\n/
/g;
$PASS = $in{"PASS"};
$PASS =~ s///g;
$PASS =~ s/<>/<>/g;
$MODE = $in{"MODE"};
$BANGO = $in{"BANGO"};
$SUBMODE=0;
$SUBMODE = $in{"SUBMODE"};
$PAGE=0;
$PAGE=$in{"PAGE"};
$GENRE=$in{"GENRE"};
$BANNER = $in{"BANNER"};
$LOCK_FILE = "./lit.lock";
$BROWSER = $ENV{'HTTP_USER_AGENT'};
if ($BROWSER =~ /MSIE/i) {
$CLASS_1='CLASS="FC"';
$CLASS_2='CLASS="FD"';
} else {
$CLASS_1='CLASS=""';
$CLASS_2='CLASS=""';
}
# ▲=============================▲
# ▼=============================▼
# 日本語変換
# -----------------------------
&jcode'convert(*COMM,'sjis');
&jcode'convert(*NAME,'sjis');
# ▲=============================▲
# ▼=============================▼
# 時間判別
# -----------------------------
($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime;
$mon++;
#曜日を文字に変換
@week = ('SUN','MON','TUE','WED','THU','FRI','SAT');
$wday = $week[$wday];
$mon = sprintf("%.2d",$mon);
$mday = sprintf("%.2d",$mday);
$hour = sprintf("%.2d",$hour);
$min = sprintf("%.2d",$min);
$NICHIJI="$year/$mon/$mday ($wday) $hour:$min";
# ▲=============================▲
# ▼=============================▼
# メインルーチン
# -----------------------------
if($MODE eq "K_DEL2"){ $SUBMODE="K"; &DELETE; }
elsif($MODE eq "TOP"){ &TOP; }
elsif($MODE eq "NEW"){ &NEW_ENTRY; }
elsif($MODE eq "REV"){ &SHUSEI; }
elsif($MODE eq "DEL"){ &SAKUJO; }
elsif($MODE eq "FM_UNDER"){ &FM_UNDER; }
elsif($MODE eq "TOUROKU"){ &TOUROKU; }
elsif($MODE eq "DELETE"){ &DELETE; }
elsif($MODE eq "REWRITE"){ &REWRITE; }
elsif($MODE eq "REW"){ &REW; }
elsif($MODE eq "FM_UP"){ &FM_UP; }
elsif($MODE eq "KREW"){ &P_CHECK; $SUBMODE="K"; &SHUSEI; }
elsif($MODE eq "KNEW"){ &P_CHECK; $SUBMODE="K"; &NEW_ENTRY; }
elsif($MODE eq "KDEL"){ &P_CHECK; $SUBMODE="K"; &K_DEL; }
elsif($MODE eq "MAN"){ &MAN; }
elsif($MODE eq "IMG"){ &IMG_VIEW; }
else{ &FRAME; }
# ▲=============================▲
# ▼=============================▼
# エラー処理
# -----------------------------
sub ERROR{
&HEAD_SET;
if(-e $LOCK_FILE){ unlink($LOCK_FILE); }
print "$BODY\n";
print "
システムエラー発生!
\n";
print "$_[0]
\n";
print "ブラウザの戻るボタンを押して、再度送信してください。
\n";
print "\n";
exit;
}
# ▲=============================▲
# ▼=============================▼
# HTMLのヘッダー出力
# -----------------------------
sub HEAD_SET {
print "Content-type: text/html\n\n";
print "\n\n";
print "\n";
print "$TITLETAG\n";
}
# ▲=============================▲
# ▼=============================▼
# ファイルロック処理
# -----------------------------
sub LOCK{
local($RETRY) = 5;
while (!symlink(".", $LOCK_FILE)) {
if (--$RETRY <= 0) { &ERROR('LOCK IS BUSY'); }
sleep(1);
}
}
# ▲=============================▲
# ▼=============================▼
# フレームセット呼出処理
# -----------------------------
sub FRAME{
&HEAD_SET;
print <<"EOH";
フレーム対応ブラウザでご覧ください。
EOH
exit;
}
# ▲=============================▲
# ▼=============================▼
# 上フレーム処理
# -----------------------------
sub FM_UP{
&HEAD_SET;
print <<"EOH";
$STYLE
$BODY