#!/usr/local/bin/perl #┌───────────────────────────────── #│ G-LIGHT v5.1 (2004/02/06) #│ Copyright (c) KentWeb #│ webmaster@kent-web.com #│ http://www.kent-web.com/ #└───────────────────────────────── $ver = 'G-LIGHT v5.1'; #┌───────────────────────────────── #│[ 注意事項 ] #│ 1. このスクリプトはフリーソフトです。このスクリプトを使用した #│ いかなる損害に対して作者は一切の責任を負いません。 #│ 2. 設置に関する質問はサポート掲示板にお願いいたします。 #│ 直接メールによる質問は一切お受けいたしておりません。 #│ 3. 添付の home.gif は L.O.V.E の mayuRin さんによる画像です。 #└───────────────────────────────── # # 【ディレクトリ構成例】 # # public_html # | # +-- glight / glight.cgi [705] # | glightlog.cgi [606] # | logview.pl [604] # | admin.pl [604] # | jcode.pl [604] # | count.dat [606] # | pastno.dat [606] # | # +-- img / *.gif # | # +-- lock [707] / # | # +-- past [707] / 0001.cgi [606] #------------------------------------------------- # 基本設定 #------------------------------------------------- # 外部ファイル取り込み require './jcode.pl'; $logview = './logview.pl'; $admin = './admin.pl'; # タイトル名 $title = "異動届(支部→本部)"; # タイトル文字の色 $t_col = "#666666"; # タイトル文字サイズ $t_size = '22px'; # タイトル画像を使う場合 (http://から画像を指定) $t_img = ""; $t_w = 300; # 横幅サイズ $t_h = 70; # 縦幅サイズ # 本文文字サイズ $b_size = '13px'; # 本文文字スタイル $b_face = "MS UI Gothic, MS Pゴシック, Osaka"; # 記事題名&カウンタの色 $sub_col = "#DD0000"; # 管理者レスの色 $res_col = "#008000"; # 本体スクリプトURL $script = './glight.cgi'; # ログファイル $logfile = './glightlog.cgi'; # カウンタログ $cntfile = './count.dat'; # カウンタの桁数 # → カウンタを付けない場合は 0 とする $count_fig = 6; # 管理用パスワード $pass = 'kimu3307'; # 最大記事数(これを超える記事は古い順に削除) $max = 3000; # 戻り先URL $home = "../index.htm"; # bodyタグ $body = '
'; # 地域名 @area = ('笠岡支部','井原支部','矢掛支部'); # アイコンを使用 (0=no 1=yes) $icon_mode = 1; # アイコン指定 # → 上下の配列はペアで指定 (スペースで区切る) $ico1 = '01.gif 02.gif 03.gif 04.gif'; $ico2 = '異動 入会 脱会 訂正'; # 管理者アイコン # → スペースで区切って複数指定可能 $ico3 = 'dog.gif cat.gif'; # アイコンディレクトリ $imgurl = './img'; # 1ページあたりの記事表示件数 $pageView = 10; # ファイルロック形式 # → 0=no 1=symlink関数 2=mkdir関数 $lockkey = 0; # ロックファイル名 $lockfile = './lock/glight.lock'; # メール通知機能 # 0 : 通知しない # 1 : 通知する → 自分の投稿記事も通知する # 2 : 通知する → 自分の投稿記事は通知しない $mailing = 0; # sendmailパス(メール通知する場合) $sendmail = '/usr/lib/sendmail'; # メール通知先アドレス(メール通知する場合) $mailto = 'info@ikasa.or.jp'; # タグ広告挿入オプション # → の代わりに「広告タグ」を挿入。 # → 広告タグ以外に、MIDIタグやLimeCounter等のタグにも使用可能。 $banner1 = ''; # 表示部上部に挿入 $banner2 = ''; # 表示部下部に挿入 # URL自動リンク # → 0=no 1=yes $autolink = 1; # イメージ参照画面の表示形態 # 1 : JavaScriptで表示 # 2 : HTMLで表示 $ImageView = 1; # イメージ参照画面のサイズ (JavaScriptの場合) $img_w = 550; # 横幅 $img_h = 450; # 高さ # 記事の更新は method=POST 限定する場合(セキュリティ対策) # → 0=no 1=yes $postonly = 0; # 他サイトから投稿排除時に指定する場合(セキュリティ対策) # → 掲示板のURLをhttp://から書く $baseUrl = ''; # 投稿制限(セキュリティ対策) # 0 : しない # 1 : 同一IPアドレスからの投稿間隔を制限する # 2 : 全ての投稿間隔を制限する $regCtl = 2; # 制限投稿間隔(秒数) # → $regCtl での投稿間隔 $wait = 1; # 投稿後の処理 # → 掲示板自身のURLを記述しておくと、投稿後リロードします # → ブラウザを再読み込みしても二重投稿されない措置。 # → Locationヘッダの使用可能なサーバのみ $location = ''; # ホスト取得方法 # 0 : gethostbyaddr関数を使わない # 1 : gethostbyaddr関数を使う $gethostbyaddr = 0; # アクセス制限(半角スペースで区切る) # → 拒否するホスト名又はIPアドレスを記述(アスタリスク可) # → 記述例 $deny = '*.anonymizer.com 211.154.120.*'; $deny = ''; # 過去ログ機能 (0=no 1=yes) $pastkey = 0; # 過去ログディレクトリ $pastdir = './past'; # 過去ログカウントファイル $pastno = './pastno.dat'; # 過去ログ1ファイル当りの最大件数 $pastmax = 600; #------------------------------------------------- # 設定完了 #------------------------------------------------- &decode; &axsCheck; if ($mode eq "regist") { ®ist; } elsif ($mode eq "howto") { &howto; } elsif ($mode eq "find") { &find; } elsif ($mode eq "usrdel") { &usrdel; } elsif ($mode eq "image") { ℑ } elsif ($mode eq "past" && $pastkey) { &past; } elsif ($mode eq "admin") { require $admin; &admin; } elsif ($mode eq "check") { ✓ } &logfile; #------------------------------------------------- # アクセス制限 #------------------------------------------------- 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); } if ($host eq "") { $host = $addr; } local($flag)=0; foreach ( split(/\s+/, $deny) ) { s/\./\\\./g; s/\*/\.\*/g; s/\?/\.\?/g; if ($host =~ /$_/i || $addr =~ /$_/i) { $flag=1; last; } } if ($flag) { &error("アクセスを許可されていません"); } } #------------------------------------------------- # 記事表示 #------------------------------------------------- sub logfile { local($i,$next,$back,$flag,@f,@ico1,@ico2,@ico3); # タイトル名 &header("ImageUp"); # カウンタ &counter if ($count_fig); print ""; if ($t_img) { print "\n"; } if ($next < $i) { $flag++; print " | \n"; } # ページ移動ボタン表示 if ($flag) { print " | \n"; &mvbtn("$script?page=", $i, $pageView, 15); print " | \n"; } else { print ""; } # 著作権表示(削除禁止) print < |