XREAサーバでのオープンソースによる運用・カスタマイズのマニュアル的ブログ。
メモ代わり、備忘録なので、詳しくは解説してないかもw
最近オープンソース以外の備忘録も書いてます。
トップページ > PHPBB3
phpbb3での英文スパム、英語スパムの投稿が増えてきましたので排除するモジュールを実装してみました。
mFactoryさんで紹介されていましたので早速取り掛かりました!
1.Lithium Studiosから『Anti-Spam ACP』のリンクよりAnti-Spam ACP 1.0.2.zipをダウンロードして解凍します。
2.解凍したらphpbb3のルートフォルダ以下にffftpを使ってアップロードします。
解凍したAnti-Spam ACP 1.0.2フォルダに『root』フォルダがありますのでphpbb3のルートフォルダ以下同じフォルダにアップロードします。
3.phpbb3ルートフォルダ/includes/ucp/ucp_pm_compose.php に追記
// Store message, sync counters
を探しその前の行に
// START Anti-Spam ACP
を追記して上書きアップロード
if ($config['asacp_spam_words_pm_action'] && antispam::spam_words(array($subject, $message_parser->message)))
{
$user->add_lang('mods/asacp');
antispam::add_log('LOG_SPAM_PM_DENIED', array($subject, $message_parser->message));
$error[] = $user->lang['SPAM_DENIED'];
}
if (!sizeof($error) && $submit && $user->data['user_flagged'])
{
antispam::add_log('LOG_SENT_PM', array('pm' => $address_list), 'flag');
}
// END Anti-Spam ACP
4.phpbb3ルートフォルダ/includes/ucp/ucp_profile.php に追記
if (!check_form_key('ucp_profile_info'))
を探しその後ろの行に
{
$error[] = 'FORM_INVALID';
}
// START Anti-Spam ACP
を追記
antispam::ucp_profile($data, $error);
// END Anti-Spam ACP
同じく
// Get additional profile fields and assign them to the template block var 'profile_fields'
を探しその前の行に
// START Anti-Spam ACP
を追記
antispam::ucp_profile_display();
// END Anti-Spam ACP
同じく
add_form_key('ucp_sig');
を探しその後ろの行に
// START Anti-Spam ACP
を追記し上書きアップロード
antispam::ucp_signature($signature, $error);
// END Anti-Spam ACP
前回の記事に対する情報追記です。
新規登録のエラーは回避されるものの、ログインしてから『ユーザー登録』の情報更新の際に更新できないというバグが併発する恐れがあります。
その対策としてデフォルト値に『NULL』ではなく『0』とする。
『website』の項目で『0』と表示されるのを回避するには『http://』までをデフォルト値に設定。
PHPBB3.04から3.06にアップデートしてから起こったエラーです。
エラーが必ず出る、というバグではないようですが2つのサーバで試して同じ現象が起こったので備忘録として記述。
エラー内容は、
一般エラー
SQL ERROR [ mysql4 ]
といったもの。
対処法はエラー文の下に
Field 'user_birthday' doesn't have a default value [1364]
のような記述もあるので、phpmyadminなどでデータベースに入り、
phpbb_usersテーブルからその記述を探し、鉛筆マークの編集から『ヌル(NULL)』を『null』とするか『デフォルト値』に『0』を入力し保存することで解決します。
ただこのエラーが起こるとphpbb_usersテーブルでの訂正箇所がいくつか出てくると思うので上記の方法で保存したらエラーページで更新、そしてエラーメッセージが変わるのでまたその部分を直して保存し更新という作業を繰り返します。
繰り返した後、最終的にはユーザー登録完了画面になります。