PINK独自bbs.cgi開発

このエントリーをはてなブックマークに追加
54名無し編集部員
### 規制処理をしている箇所の最後に挿入
if ( $ENV{'SERVER_NAME'} =~ /bbspink/ ) {
require 'pink_kisei.pl';
&pink_kisei($GB);
}

### pink_kisei.pl
use strict 'vars';

sub pink_kisei {
my $GB = $_[0];

# ★●はスルー(添え字と値は何ー?)
if ( $GB->{'★●'} ) { return 0; }

# BBSPINK用リファレンス変数をグローバルで宣言
# staticなローカル変数って無いんだっけ・・・?
use vars qw($PINK);

# 最初なら色々読み込み
unless ( defined $PINK ){
$PINK = {};
# 規制リストとか(例)
$PINK->{'kisei'} = [];
open(KISEI, 'kisei.txt');
@{$PINK->{'kisei'}} = <KISEI>;
chomp @{$PINK->{'kisei'}};
close KISEI;
# 独自規制リストの分だけ同様に繰り返す
}

# 規制処理
# リスト内を単純に探す
if ( grep(/^$GB->{'端末番号とか'}/, @{$PINK->{'kisei'}}) ) {
&DispError2($GB, "ERROR!", "ERROR:エラーです!!($GB->{'端末番号とか'})");
}

# リスト側の正規表現でマッチング
foreach ( @{$PINK->{'kisei'}} ) {
next if /^#/;
# 例えばIPアドレスで
if ( $ENV{'REMOTE_ADDR'} =~ /$_/ ) {
&DispError2($GB, "ERROR!", "ERROR:エラーです!!($_)");
}
}

# 何も無し
return 0;
}
1;