Zabezpiecza formularze przed spamem
Instrukcje dotyczą phpBB2 (najnowszej stabilnej wersji 2.0.22). Wtyczka zadziała również z innymi wersjami, m.in. „phpBB modified by Przemo”.
Nie ma jeszcze instrukcji dla phpBB3 (możesz skorzystać z ogólnej instrukcji, jeśli potrafisz).
Dodatek EasyMOD do phpBB2 pozwala zainstalować wtyczkę (prawie) automatycznie. Jeśli go nie masz, zobacz samodzielną instalację. Aby użyć EasyMOD:
Po przejściu przez proces instalacji EasyMOD musisz jeszcze umieścić swój klucz API oraz poprawić niestandarowe szablony (zobacz punkty 2 i 5-6 w samodzielnej instalacji).
Umieść pliki sblam.js.php, sblamtest.php i sblamtestbb.php w katalogu głównym phpBB (tym, w którym znajdują się index.php, common.php, posting.php).
Wygeneruj swoj klucz API i zanotuj go sobie. Następnie otwórz plik sblamtestbb.php i w linii:
define("SBLAM_API_KEY",NULL);
zamień NULL
na swój klucz API w cudzysłowie. Na przykład jeśli twój klucz to ABC123abc123
, to kod powinien wyglądać tak:
define("SBLAM_API_KEY","ABC123abc123");
Otwórz plik usercp_register.php z katalogu includes i znajdź w nim fragment:
if ( !$error ) {
if ( $avatar_sql == '' )
i przed nim wklej fragment:
// Sblam!
require_once $phpbb_root_path . 'sblamtestbb.php';
sblam_register_hook($error,$error_msg,$mode);
Następnie otwórz functions_post.php z tego samego katalogu (includes) i znajdź w nim fragment:
if ($mode == 'editpost')
(w „phpBB modified by Przemo” to będzie if ( $mode == 'editpost' && $board_config['search_enable'])
wewnątrz funkcji submit_post
)
i przed nim wklej fragment:
// Sblam!
require_once $phpbb_root_path . 'sblamtestbb.php';
if (sblam_posting_hook($mode, $userdata['user_id'].':'.$post_username, $bbcode_uid, $post_subject, $post_message)) return false;
</form>
wklej fragment:
<p class="copyright sblam-footer">Protected with <a href="https://sblam.com">Sblam!</a></p>
<script type="text/javascript" src="sblam.js.php"></script>
Powyższy punkt wykonaj na pliku posting_body.tpl znajdującym się w katalogu szablonu.
(w „phpBB modified by Przemo” należy także zmodyfikować plik quick_reply.tpl)
Jeśli masz wielojęzyczne forum, to zmodyfikuj plik językowy language/lang_english/lang_main.php dodając na końcu:
// Sblam!
$lang['Spam_registration'] = 'Registration has been blocked by antispam filter!';
$lang['Spam_posting'] = 'Posting has been blocked by antispam filter!';
$lang['Spam_report'] = 'Report filter\'s mistake';
i powtórz tę operację dla pozostałych języków (nie musisz przejmować się polskim — wtyczka domyślnie używa polskiego).
W panelu administracyjnym wyłącz Visual Confirmation (CAPTCHA) i aktywację kont przez e-mail. Wtyczka skutecznie zastępuje CAPTCHA i automatycznie włącza aktywację tylko, gdy nie ma pewności czy rejestruje się człowiek, czy bot.
phpBBroot/templates/NAZWASTYLU/index_body.tpl
, tuż nad <!--End Custom Registration--!>
, umieść kod JavaScript skryptu Sblam!Używając swojego klucza API (wygenerowanego w punkcie 2 instalacji) zaloguj się do statystyk konta i zobacz, czy przychodzą tam informacje o nowych postach i rejestracjach. Na stronie statystyk znajdziesz również ostrzeżenia o ewentualnych nieprawidłowościach w instalacji.
Nie próbuj wysyłać sobie spamowatych postów! Jeśli przekonasz Sblam!, że jesteś spamerem, to zostaniesz potraktowany jak spamer ze wszystkimi tego konsekwencjami!
Wtyczka filtruje wszystkie posty i rejestracje. Filtrowanie postów jest bardzo skuteczne. Na tyle skuteczne, że możesz nawet dopuścić wysyłanie postów przez niezalogowanych użytkowników.
Natomiast próby rejestracji na wszelki wypadek nie są pilnie strzeżone. Ilość danych podawanych podczas rejestracji jest niewielka i nie zawsze pozwala z dużą pewnością odróżnić bota od człowieka. W przypadku wątpliwości Sblam! pozwoli zarejestrować konto pod warunkiem aktywacji przez e-mail. Nawet jeśli bot w ten sposób zdoła się zarejestrować, to i tak wszystkie jego posty później będą filtrowane.
Może znajdzie się ktoś chętny do ulepszenia wtyczki tak, żeby śledziła reputację postujących i kasowała konta upartym spamerom?