禁止ワード設定と英語のみ禁止でspam投稿対策

phpbbを運用しているとspam投稿が結構多いので、禁止ワード設定で禁止ワード込みで投稿できなくし、英語のみの投稿禁止で外国からの英語spamを禁止する。

phpBB2でもphpBB3でも対応可能です。少し変更する必要があります。

posting.phpの170行目あたり

$error_msg = ”;

$post_data = array();

->ここに追加する

switch ( $mode )

追加する内容
$chkmsg = ( !empty($HTTP_POST_VARS[‘message’]) ) ? $HTTP_POST_VARS[‘message’] : ”;

//phpBB3の場合は「$HTTP_POST_VARS」を「$_POST」に変更

//英語のみ禁止チェック
$chkresult = ((mb_detect_encoding($chkmsg, “auto”) == ‘ASCII’)&&(strlen($chkmsg) != 0));

//禁止ワードを”chkword.txt”から読み込む
$chkword = @file(“chkword.txt”);

foreach ($chkword as $line) {

$line = str_replace(“r”, “” , $line);

$line = str_replace(“n”, “” , $line);

if (substr_count($chkmsg, $line)) { $chkresult = true; }

}

if ($chkresult) {
 //phpBB2の場合
message_die(GENERAL_MESSAGE, “禁止ワードが含まれています<br />詳細は master にお問合せください”);

//phpBB3の場合
//trigger_error(‘禁止ワードが含まれています’);
}

禁止ワードのファイルをアップロード
chkword.txtに1行に1キーワードで禁止ワードを書いて、posting.phpと同じ階層にアップロードする。

参考サイト

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です