#!/usr/local/bin/perl #┌───────────────────────────────── #│ JOYFUL NOTE v1.96 (2006/01/18) #│ Copyright (c) KentWeb #│ webmaster@kent-web.com #│ http://www.kent-web.com/ #└───────────────────────────────── $ver = 'JoyfulNote v1.96'; #┌───────────────────────────────── #│ [注意事項] #│ 1. このスクリプトはフリーソフトです。このスクリプトを使用した #│ いかなる損害に対して作者は一切の責任を負いません。 #│ 2. 設置に関する質問はサポート掲示板にお願いいたします。 #│ 直接メールによる質問は一切お受けいたしておりません。 #│ 3. このスクリプトは、method=POST 専用です。 #│ 4. 同梱のアイコンで、以下のファイルの著作権者は以下のとおりです。 #│ home.gif : mayuRinさん #│ clip.gif : 牛飼いとアイコンの部屋さん #└───────────────────────────────── # # 【ファイル構成例】 # # public_html (ホームディレクトリ) # | # +-- joyful / joyful.cgi [705] # | joyful.log [606] # | count.dat [606] # | jcode.pl [604] # | cgi-lib.pl [604] # | pastno.dat [606] # | # +-- img [707] / home.gif, bear.gif, ... # | # +-- lock [707] / # | # +-- past [707] / 1.dat [606] ... #------------------------------------------------- # 設定項目 #------------------------------------------------- # ライブラリ取込 require './jcode.pl'; require './cgi-lib.pl'; # タイトル名 $title = "計測画像用掲示板"; # タイトルの文字色 $t_color = "#804040"; # タイトルの文字サイズ $t_size = '26px'; # 本文の文字フォント $face = '"MS UI Gothic", "MS Pゴシック", Osaka'; # 本文の文字サイズ $b_size = '13px'; # 壁紙を指定する場合(http://から指定) $bg = ""; # 背景色を指定 $bc = "#FEF5DA"; # 文字色を指定 $tx = "#000000"; # リンク色を指定 $lk = "#0000FF"; # 未訪問 $vl = "#800080"; # 訪問済 $al = "#FF0000"; # 訪問中 # 戻り先のURL (index.htmlなど) $homepage = "../../index.shtml"; # 最大記事数 (親記事+レス記事も含めた数) $max = 100; # 管理者用マスタパスワード (英数字で8文字以内) $pass = 'nmcybs'; # 返信がつくと親記事をトップへ移動 (0=no 1=yes) $topsort = 1; # 返信にも添付機能を許可する (0=no 1=yes) $res_clip = 1; # 画像と記事の位置 # 1 : 画像が左。記事は右から回り込む # 2 : 画像が下。記事は画像の上に表示。 $imgpoint = 1; # タイトルにGIF画像を使用する時 (http://から記述) $t_img = ""; $t_w = 180; # GIF画像の幅 (ピクセル) $t_h = 40; # 〃 高さ (ピクセル) # ファイルロック形式 # → 0=no 1=symlink関数 2=mkdir関数 $lockkey = 1; # ロックファイル名 $lockfile = './lock/joyful.lock'; # ミニカウンタの設置 # → 0=no 1=テキスト 2=GIF画像 $counter = 1; # ミニカウンタの桁数 $mini_fig = 6; # テキストのとき:ミニカウンタの色 $cnt_color = "#BB0000"; # GIFカウンタのとき:画像までのディレクトリ # → 最後は必ず / で閉じる $gif_path = "./img/"; $mini_w = 8; # 画像の横サイズ $mini_h = 12; # 画像の縦サイズ # カウンタファイル $cntfile = './count.dat'; # スクリプトのURL $script = './joyful.cgi'; # ログファイルを指定 # → フルパスで指定する場合は / から記述 $logfile = './joyfullog.cgi'; # アップロードディレクトリ # → パスの最後は / で終わること # → フルパスだと / から記述する $imgdir = './img/'; # アップロードディレクトリのURLパス # → パスの最後は / で終わること $imgurl = "http://valkyrja.ddo.jp/~sith/media/bbs/joyful/img/"; $imgurl = "./img/"; # 添付ファイルのアップロードに失敗したとき # 0 : 添付ファイルは無視し、記事は受理する # 1 : エラー表示して処理を中断する $clip_err = 1; # 記事 [タイトル] 部の長さ (全角文字換算) $sub_len = 15; # メールアドレスの入力必須 (0=no 1=yes) $in_email = 0; # 記事の [タイトル] 部の色 $sub_color = "#880000"; # 記事表示部の下地の色 $tbl_color = "#FFFFFF"; # 同一IPアドレスからの連続投稿時間(秒数) # → 連続投稿などの荒らし対策 # → 値を 0 にするとこの機能は無効になります $wait = 120; # 1ページ当たりの記事表示数 (親記事) $p_log = 5; # 投稿があるとメール通知する (sendmail必須) # 0 : 通知しない # 1 : 通知するが、自分の投稿記事はメールしない。 # 2 : 通知する。自分の投稿記事も通知する。 $mailing = 1; # メールアドレス(メール通知する時) $mailto = 'sith_tej@yahoo.co.jp'; # sendmailパス(メール通知する時) $sendmail = '/usr/lib/sendmail'; # 他サイトから投稿排除時に指定 (http://から書く) $base_url = ""; # 文字色の設定(半角スペースで区切る) $colors = '#800000 #DF0000 #008040 #0000FF #C100C1 #FF80C0 #FF8040 #000080'; # URLの自動リンク (0=no 1=yes) $autolink = 1; # タグ広告挿入オプション # → の代わりに「広告タグ」を挿入する。 # → 広告タグ以外に、MIDIタグ や LimeCounter等のタグにも使用可能です。 $banner1 = ''; # 掲示板上部に挿入 $banner2 = ''; # 掲示板下部に挿入 # ホスト取得方法 # 0 : gethostbyaddr関数を使わない # 1 : gethostbyaddr関数を使う $gethostbyaddr = 0; # アクセス制限(半角スペースで区切る、アスタリスク可) # → 拒否ホスト名を記述(後方一致)【例】*.anonymizer.com $deny_host = ''; # → 拒否IPアドレスを記述(前方一致)【例】210.12.345.* $deny_addr = ''; # アップロードを許可するファイル形式 # 0:no 1:yes $gif = 1; # GIFファイル $jpeg = 1; # JPEGファイル $png = 1; # PNGファイル $text = 0; # TEXTファイル $lha = 0; # LHAファイル $zip = 0; # ZIPファイル $pdf = 0; # PDFファイル $midi = 0; # MIDIファイル $word = 0; # WORDファイル $excel = 0; # EXCELファイル $ppt = 0; # POWERPOINTファイル $ram = 0; # RAMファイル $rm = 0; # RMファイル $mpeg = 0; # MPEGファイル $mp3 = 0; # MP3ファイル # 投稿受理最大サイズ (bytes) # → 例 : 102400 = 100KB $cgi_lib'maxdata = 204800; # 画像ファイルの最大表示の大きさ(単位:ピクセル) # → これを超える画像は縮小表示します $MaxW = 743; # 横幅 $MaxH = 672; # 縦幅 # 家アイコンの使用 (0=no 1=yes) $home_icon = 1; # アイコン画像ファイル名 (ファイル名のみ) $IconHome = "home.gif"; # ホーム $IconClip = "clip.gif"; # クリップ $IconSoon = "soon.gif"; # COMINIG SOON # 画像管理者チェック機能 (0=no 1=yes) # → アップロード「画像」は管理者がチェックしないと表示されない機能です # → チェックされるまで「画像」は「COMMING SOON」のアイコンが表示されます $ImageCheck = 0; # 投稿後の処理 # → 掲示板自身のURLを記述しておくと、投稿後リロードします # → ブラウザを再読み込みしても二重投稿されない措置。 # → Locationヘッダの使用可能なサーバのみ $location = ''; # 禁止ワード # → コンマで区切って複数指定する(例)$deny_word = 'アダルト,出会い,カップル'; $deny_word = ''; #---(以下は「過去ログ」機能を使用する場合の設定です)---# # # 過去ログ生成 (0=no 1=yes) $pastkey = 0; # 過去ログ用NOファイル $nofile = './pastno.dat'; # 過去ログのディレクトリ # → フルパスなら / から記述(http://からではない) # → 最後は必ず / で閉じる $pastdir = './past/'; # 過去ログ1ファイルの行数 # → この行数を超えると次ページを自動生成します $log_line = 600; #------------------------------------------------- # 設定完了 #------------------------------------------------- # メイン処理 &decode; &axscheck; if ($mode eq "howto") { &howto; } elsif ($mode eq "find") { &find; } elsif ($mode eq "usr_del") { &usr_del; } elsif ($mode eq "usr_edt") { &usr_edt; } elsif ($mode eq "regist") { ®ist; } elsif ($mode eq "res") { &res_form; } elsif ($mode eq "admin") { &admin; } elsif ($mode eq "past") { &past; } elsif ($mode eq "check") { ✓ } &html_log; #------------------------------------------------- # アクセス制限 #------------------------------------------------- sub axscheck { # IP&ホスト取得 $host = $ENV{'REMOTE_HOST'}; $addr = $ENV{'REMOTE_ADDR'}; if ($gethostbyaddr && ($host eq "" || $host eq $addr)) { $host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2); } # IPチェック local($flg); foreach ( split(/\s+/, $deny_addr) ) { s/\./\\\./g; s/\*/\.\*/g; if ($addr =~ /^$_/i) { $flg = 1; last; } } if ($flg) { &error("アクセスを許可されていません"); # ホストチェック } elsif ($host) { foreach ( split(/\s+/, $deny_host) ) { s/\./\\\./g; s/\*/\.\*/g; if ($host =~ /$_$/i) { $flg = 1; last; } } if ($flg) { &error("アクセスを許可されていません"); } } if ($host eq "") { $host = $addr; } } #------------------------------------------------- # 記事表示部 #------------------------------------------------- sub html_log { local($ipt,$wh,$i,$flag); # ヘッダを出力 &header; # カウンタ処理 if ($counter) { &counter; } # タイトル部 print "
\n"; }
if ($t_img eq '') {
print "$title\n";
} else {
print "\n";
}
# メニュー部
print "
\n"; print "
\n"; if ($back >= 0) { $p_flag=1; print " \n"; } if ($next < $i) { $p_flag=1; print " \n"; } # ページ移動ボタン表示 if ($p_flag) { print " \n"; $x=1; $y=0; while ($i > 0) { if ($page == $y) { print "[$x]\n"; } else { print "[$x]\n"; } $x++; $y = $y + $p_log; $i = $i - $p_log; } print " \n"; } print "
\n"; print "\n"; print "- Joyful Note -\n"; print "