[bbsreg.cgi (または下のようなサブルーチンをもつスクリプト)]
sub chkmessage {
if ( ! ( $referer =~ /$cgiurl/i ) ) {
&chkerror ( "投稿画面のURLが
$cgiurl
" .
'以外からの投稿はできません。', 3 );
}
#--- 簡易spam対策 ここから
my $antispam = 1; # 0 : 無効 / 1 : 有効
if ( $antispam ) {
if ( $ENV{HTTP_ACCEPT_LANGUAGE} && $ENV{HTTP_ACCEPT_LANGUAGE} !~ /ja/i ) {
&chkerror ( 'ブラウザの言語設定を見直して日本語を受け入れるようにしてください。', 9 );
}
if ( $FORM{'message'} =~ /^[\x00-\x7f]+$/ ) {
&chkerror ( '投稿内容に日本語の文字が含まれていません。', 9 );
}
my $maxurl = 5; # 1メッセージに含まれるURLの最大数
my $url = 0;
while ( $FORM{'message'} =~ m!https?://!ig ) {
$url++; # URLをカウント
if ( $url > $maxurl ) {
&chkerror ( '投稿内容に含まれるURLが多すぎます。', 9 );
}
}
}
#--- 簡易spam対策 ここまで
$i = 0;
foreach ( split ( /\r/, $FORM{'message'} ) ) {
if ( length ( $_ ) > $maxmsgcol ) {
$i++;
}
}