#!/usr/bin/perl ## CLIP BOARD v0.71 (00/07/16) : ベータ版 ## Copyright(C) Kent Web 2000 ## webmaster@kent-web.com) ## http://www.kent-web.com/ $ver = 'ClipBoard v0.71'; # バージョン情報 #--- [注意事項] ------------------------------------------------# # 1. このスクリプトはフリーソフトです。このスクリプトを使用した # # いかなる損害に対して作者は一切の責任を負いません。 # # 2. 設置に関する質問はサポート掲示板にお願いいたします。 # # 直接メールによる質問は一切お受けいたしておりません。 # # 3. このスクリプトは、method=POST 専用です。 # # 4. 同梱のアイコンは再配布で著作権者は以下のとおりです。 # # home.gif : mayuRinさん # # clip.gif : 牛飼いとアイコンの部屋さん # #---------------------------------------------------------------# # [ 設置構成例 ] : かっこ内はパーミッション値 # # public_html # | # +-- clip / clip.cgi [755] # | clip.log [666] # | jcode.pl [644] # | cgi-lib.pl [644] # | # +-- img [777] / clip.gif # home.gif # soon.gif #============# # 設定 # #============# # ライブラリ取り込み require './jcode.pl'; require './cgi-lib.pl'; # タイトル名 $title = "きりのない部屋掲示板"; # タイトル文字の色 $t_color = "#129da9"; # タイトル文字のタイプ $t_face = "MS Pゴシック"; # タイトル文字サイズ(スタイルシートで有効) $t_point = '20pt'; # 本文文字サイズ(スタイルシートで有効) $b_size = '10pt'; # 記事題名の色 $sub_color = "green"; # スクリプト名 $script = "./clip.cgi"; # ログファイル名 $logfile = "./clip.log"; # 管理用パスワード $pass = 'shiba'; # 最大記事数(これを超える記事は古い順に削除されます) $max = 200; # 戻り先 $home = "../index.html"; # bodyタグ $body = '
'; # URLの自動リンク (0=no 1=yes) # --> タグ許可の場合は no とすること。 $autolink = 1; # 1ページあたりの記事表示件数 $p_log = 7; # ホスト名取得方式 # --> 0 : $ENV{'REMOTE_HOST'} # --> 1 : gethostbyaddr $gethostbyaddr = 0; # ロックファイル機構 (0=no 1=symlink関数 2=open関数) $lockkey = 0; # ロックファイル名 $lockfile = "./clip.lock"; # 画像管理者チェック機能 (0=no 1=yes) # 1: アップロード「画像」は管理者がチェックしないと表示されない機能です # 2: チェックされるまで「画像」は「COMMING SOON」のアイコンが表示されます $ImageCheck = 0; # タグ許可 (0=no 1=yes) $tagkey = 0; # メール通知機能 # 0=no # 1=yes:自分の投稿記事もメール通知する # 2=yes:自分の投稿記事はメール通知しない $mailing = 0; # sendmailのパス(メール通知する場合) $sendmail = '/usr/lib/sendmail'; # メール通知先アドレス(メール通知する場合) $mailto = 'foo@host.ne.jp'; # タグ広告挿入オプション (FreeWebなど) # → の代わりに「広告タグ」を挿入する。 # → 広告タグ以外に、MIDIタグ や LimeCounter等のタグにも使用可能です。 $banner1 = ''; # 表示部上部に挿入 $banner2 = ''; # 表示部下部に挿入 # アクセス制限(ホスト名を記述) @deny = ( "anonymizer", "cache*.*.interlog.com", "", "", "", "" ); # リンク元チェック (0=no 1=yes) # --> いたずら投稿防止に「リンク元」チェックを行う場合 $LinkCheck = 0; # 同一ホストからの連続投稿を制限 # --> 秒数を記述するとその時間以上を経過しないと連続投稿できない $w_regist = '60'; # タイトル画像を使う場合 (http://から画像を指定) $ImgT = ""; # タイトル画像を使う場合に「横幅」「縦幅」をそれぞれピクセル数で記述 $ImgW = "300"; $ImgH = "70"; # アップロードディレクトリ # --> パスの最後は / で終わること # --> フルパスだと / から記述する $ImgDir = "./img/"; # アップロードディレクトリのURLパス # --> パスの最後は / で終わること $ImgUrl = "http://www.kirino.net/bbs1/img/"; # アップロードを許可するファイル形式 # 0:no 1:yes $gif = 1; # GIFファイル $jpeg = 1; # JPEGファイル $png = 1; # PNGファイル $text = 1; # TEXTファイル $lha = 0; # LHAファイル $zip = 0; # ZIPファイル $pdf = 1; # PDFファイル $midi = 0; # MIDIファイル # 投稿受理最大サイズ (bytes) # --> 例 : 102400 = 100KB $cgi_lib'maxdata = '102400'; # 画像ファイルの最大表示の大きさ(単位:ピクセル) # --> これを超える画像は縮小表示します $MaxW = 550; # 横幅 $MaxH = 200; # 縦幅 # アイコン画像ファイル名 (ファイル名のみ) $IconHome = "home.gif"; # ホーム $IconClip = "clip.gif"; # クリップ $IconSoon = "soon.gif"; # COMINIG SOON #============# # 設定完了 # #============# if ($ImgDir !~ /\/$/) { $ImgDir .= "/"; } if ($ImgUrl !~ /\/$/) { $ImgUrl .= "/"; } &decode; &axs_check; if ($mode eq 'regist') { ®ist; } elsif ($mode eq 'find') { &find; } elsif ($mode eq 'admin') { &admin; } elsif ($mode eq 'usrdel') { &usrdel; } elsif ($mode eq 'check') { ✓ } &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("アクセスを許可されていません") } } } #----------------# # 記事表示処理 # #----------------# sub html { # ブラウザ情報を取得 &get_agent; # クッキー情報を取得 &get_cookie; # レス処理 if ($mode eq 'resmsg') { open(IN,"$logfile") || &error("Open Error : $logfile"); $flag=0; while (\n" if ($banner1 ne "");
# タイトル
if ($ImgT) {
print "\n";
} else {
print "$title
\n";
print "「思いつくまま,気の向くままに」\n";
}
print <<"EOM";
\n"; print "
$com\n"; if (-e "$ImgDir$no$tail") { if ($tail eq ".gif" || $tail eq ".jpg" || $tail eq ".png") { if ($ImageCheck && $chk != 1) { print "
\n"; } elsif ($W && $H) { print "
| \n"; } if ($next_page < $i) { print " | \n"; } print " |
\n"; print "- ClipBoard -\n"; print "