Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyłapywanie przekleństw w formularzach
Szunaj85
post
Post #1





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

Ostrzeżenie: (0%)
-----


Mam skrypt w którym w tablicy trzymam zbiór przekleństw i brzydkich słów. Za pomocą pętli i if-ów sprawdzam czy w formularzu nie znajdują się jakieś słowa z tablicy. Skrypt działa dobrze jednak łatwo go ominąć.
Przykładowo moje brzydkie słowo to: "przykład".
W takiej postaci skrypt zadziała, jednak jak dam "p_r_z_y_k_ł_a_d", "p*r*z*y*k*ł*a*d", "p-r-z-y-k-ł-a-d"
lub choćby "p_rzykład", p*rzykład, p-rzykład już nie. Jak przed czymś takim się uchronić.
Możliwe, że trzeba wykorzystać wyrażenia regularne, ale nie wiem jak je napisać. (IMG:style_emoticons/default/sadsmiley02.gif)
Nie chodzi tu o to żeby skrypt wszystko i wszystkich blokował tak jak jest z niektórymi cenzorami, jednak chciałbym żeby był bardziej rozbudowany.
Tu podałem przykład ominięcia skryptu, który mi jest znany jeśli ktoś zna inne sposoby proszę o ich pokazanie i o rozwiązania. (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował Szunaj85 12.06.2010, 17:14:28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Hoku
post
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 2
Dołączył: 6.07.2010

Ostrzeżenie: (0%)
-----


na przekręt z .,/-+|_ polecam regex ;]
zrobić
$brudna= explode(" ", $string);
$czysta =preg_replace('/[^a-zA-Zńąćśźżó곣ӯŹĆĄŚĘŃ ]/', '',$string);
zostaje jedynie spacja i polskie znaki dziwnie to wygląda ale działa na polskie znaki nie miałem innego pomysłu...
a potem $tabliczka= explode(" ",$czysta);
sprawdzać w 1 pętli $tabliczka[$i] z bazą wulgarnych.
i tylko wtedy i wyłącznie wtedy gdy $czysta[$i] jest wulgarna podmienić w tablicy $brudna[ $i]="cenzura";
$j2=++$j;
i w nr. 2 pętli możesz $tabliczka[$j].$tabliczka[$j2] sprawdzać do bazy wulgarnych.
i tylko wtedy i wyłącznie wtedy gdy $tabliczka$j].$tabliczka[$j2] jest wulgarna podmienić w tablicy $brudna[$j]="cenzura" $brudna[$j2]="" ;

i w $brudna tablice łaczymy $wyniczek= implode(" ",$brudna);
i $wyniczek jest dobry.
raczej usunie jedynie wulgaryzmy bo raczej do głowy przychodzi mi tylko usunięcie zdania że "pierd Oli był naprawdę głośny".
ale już "Urwałaś się z choinki" nie naruszy (IMG:style_emoticons/default/smile.gif)

jeśli ktoś zrobi k**wa to już musiałbyś albo cenzurować słowa zawierające *+ w sobie w całości lub sprawdzać podobieństwo innymi słowami. a to by raczej ostro muliło ...

Ten post edytował Hoku 10.07.2010, 00:31:43
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 06:41