To jest ogólna instrukcja umożliwiająca instalację Sblam! na dowolnej stronie, ale wymagająca podstawowej znajomości języka PHP.
Proszę przeczytaj tę instrukcję uważnie i w całości. Bardzo wiele osób przegapia ważne uwagi w niej zawarte i niepotrzebnie obniża jakość filtrowania.
Dodanie filtrowania wymaga dodania kodu do skryptu PHP, który odbiera dane z formularza (zazwyczaj to plik wskazywany przez <form action="…">
).
W skrypcie tym musisz dodać kod tak, aby był wykonany po sprawdzeniu poprawności danych (żeby niewypełniony formularz nie był niepotrzebnie sprawdzany pod kątem spamu), ale przed zapisaniem postu do bazy.
Kod do dodania:
include_once "sblamtest.php";
$rezultat = sblamtestpost();
if ($rezultat > 0) {
die('<h1>Przepraszamy - twój komentarz został uznany za spam!</h1>
<p><a href="'.sblamreporturl().'">Zgłoś błąd filtru</a>.</p>');
}
Umieść pliki Sblam! w tym samym katalogu, co skrypt.
Powyższy kod, jeśli potrafisz, możesz dowolnie modyfikować i rozszerzać (w szczególności warto w nim ulepszyć reakcję na spam).
Funkcja sblamtestpost()
zwraca liczbę oznaczającą jak bardzo spamowaty jest post:
Funkcja sblamreporturl()
zwraca adres (URL), pod którym użytkownik może zgłośić błędnie zaklasyfikowany post.
Nie próbuj wysyłać testowych spamów! Nie uda ci się w ten sposób sprawdzić, czy działa filtrowanie! Koniecznie przeczytaj testowanie na końcu tej strony zanim zaczniesz bezskutecznie zalewać serwis postami typu „viagra, viagra, viagra”!
Drugim krokiem jest umieszczenie specjalnego skryptu JavaScript na stronie (filtr działa bez JavaScript, ale z mniejszą skutecznością). Miejsce umieszczenia jest ważne — skrypt musi być dodany za końcowym tagiem </form>
formularza, który będzie filtrowany:
<form action="…" method="post">
…
</form>
<script src="sblam.js.php"></script>
Popraw ścieżkę z przykładu tak, aby wskazywała na plik sblam.js.php
na twoim serwerze.
Skrypt nie zadziała jeśli masz bardzo nieprawidłowy HTML. W szczególności poplątane i niepozamykane tagi tabel mogą uniemożliwić działanie skryptu.
Sblam! pozwala założyć konta, dzięki którym można sprawdzić poprawonść instalacji i przeglądać złapane spamy. Zakładanie konta zostało opisane na osobnej stronie.
Nie próbuj wysyłać testowych spamów! Jeśli sam/a spróbujesz spreparować spam, to są tylko dwie możliwości:
Żeby bezpiecznie i pewnie sprawdzić jak działa blokowanie, wyślij post o treści „to jest test spamu” (tylko ten tekst i nic więcej). Ta specjalna wiadomość powoduje, że Sblam! oznacza post jako spam, ale nie uznaje jego autora za spamera.
Jeśli wpisanie „to jest test spamu” nie powoduje zaklasyfikowania postu jako spam, to najprawdopodobniej Sblam! nie potrafił automatycznie rozpoznać nazw pól w twoim formularzu i musisz je podać.
Żeby sprawdzić jak posty są przepuszczane, napisz jakiś normalny post (albo skopiuj jakiś poprzedni, który nie jest spamem).
Wyślij post zawierający polskie litery (sczególnie „ś” i „ą”) i po zalogowaniu się do konta sprawdź, czy dotarły do serwera i czy polskie znaki wyświetlają się poprawnie. Jeśli nie, to najprawdopodobniej używasz niestandardowego kodowania znaków Windows 1250, które przez Sblam! nie jest obsługiwane.
Jeśli testowe posty są przepuszczane albo po zalogowaniu się do konta widzisz posty z treścią nie tam, gdzie trzeba, to oznacza, że musisz określić jakich nazw pól używa twój formularz. Robi się to podając ich nazwy w tablicy przekazywanej do funkcji sblamtestpost()
.
Nazwy muszą być podane w odpowiedniej kolejności:
Jeśli nie przewidujesz danego pola w formularzu, to zamiast jego nazwy podaj NULL
.
<input type=text name="ksyfka">
$rezultat = sblamtestpost(array('tekscik', 'ksyfka', 'emil', 'linkdowuwuwu'));
Ważne: podaj tylko nazwy pól, a nie ich zawartość (skrypt sam sobie weźmie zawartość z $_POST
).
Zwróć też uwagę, że lista pól jest w array()
, a nie jako parametry funkcji.
Dodatkowo zainstaluj czarną listę i wesprzyj projekt.
Jest możliwość generowania specjalnych linków, które automatycznie logują do konta aby pokazać statystyki.