Skocz do zawartości

Cenzura słów w formularzach [PHP]


zerocool
 Udostępnij

Rekomendowane odpowiedzi

Potrzebuję zrobić cenzora z pól formularza, oraz blokadę IP

Wszystko musi opierać się na definiowaniu zmennych w osobnym pliku, lub ewentualnie w ciągu (słowo1, słowo2, słowo3) niestety nie mogę wykorzystać bazy SQL mogę się tylko opierać na pikach tekstowych.

chodzi mniej więcej o coś takiego :

$sciezka= zablokowane_slowa.txt
$sciezka2 = zablokowane_ip.txt
$sciezka3 = zablokowane_inne.txt

$ciag = szukanie słowa($sciezka, $sciezka2, $sciezka3)

if (($pole_forularza = $ciag) || ($pole_formularza2 = $ciag )) {echo "";}
else { dalej }

albo

$zablokowane_ip = (ip1, ip2, ip3, ip4)
$zablokowane_slowa = (słowo1, słowo2, słowo3, słowo4)

if (($pole_formularza = $zablokowane_ip) || ($pole_formularza = $zablokowane_slowa)) {echo "blokada";}
else {dalej} 

oczywiście jestem otwarty na inne sugestie rozwiązań, dzięki z góry

serce.gifKocham Cię | Życie po Ślubie | Psychopatologia

Popełniłeś tylko jeden błąd ... jaki ? ... RAMBO !

Odnośnik do komentarza
Udostępnij na innych stronach

Pierwsze co mi przychodzi do głowy, to wykorzystanie funkcji in_array - czyli zapisujesz sobie dane np. ip w pliku jako tablicę. Następnie wartość przesłaną z formularza sprawdzasz przy pomocy funkcji in_array - czy występuje w tablicy, jeżeli występuje, to blokujesz wykonanie skryptu, a jak nie, to puszczasz dalej :D

Niestety, in_array rozróżnia wielkość liter, więc dobrze by było, gdybyś przed sprawdzeniem np. zamienił wszystkie litery wprowadzone przez usera na małe i w takiej też postaci trzymał je w pliku tekstowym.

Jeżeli chcesz blokować zakresy ip, to uśmiechnij się ładnie do Erbita, z tego co mówił, napisał do tego funkcję :D Pozdrawiam

Dała matka rozum? To kombinuj.

Odnośnik do komentarza
Udostępnij na innych stronach

...napisał do tego funkcję...

dokładniej funkcję do blokowania zakresów ( a nie jednego IP) choć oczywiście można też za jej pomocą blokować pojedyńcze zakresy - niemniej do bezcelowe.

Funkcja jest tu gdzieś upubliczniona.

[edyta]

Jesli Ciebie intereruje zacznij od tego topiku -> https://www.forum.optymalizacja.com/index.php?s...indpost&p=68334 a na następnej stronie jest to o czym mowa.

Zas co do odczyty pliku o ile sie nie pomylilem to:

$dane = explode(chr(13),fread(fopen("nazwa_pliku", "r"), filesize("nazwa_pliku")));

$dane bedzie zawieralo tablice gdzie kazda linia bedzie osobnym elementem.

Musisz tylko zwrócić uwage na to czy koniec linii to chr(13) czy chr(10) bo w roznych sytemach koniec lini jest roznie zapisywany.

[edyta2]

:) szybciej bedzie chyba tak:

$dane = file('zanwa pliku');

to tworzy tablice taką samą jak wyzej ale moze zawierać znaki końca lini, których trzeba by się pozbyć. Szczegóły tu -> https://pl2.php.net/manual/pl/function.file.php

[edyta3] (ostatnia)

a znaki konca lini mozesz obciąć funkcją rtrim() -> https://pl2.php.net/manual/pl/function.rtrim.php

Amen

Odnośnik do komentarza
Udostępnij na innych stronach

Jak człowiek szuka czegoś prostego to się znajduje 100 wersji i każda za skomplikowana :)

Mi chodzi o naprawdę prostą rzecz, plik z zablokowanymi słowami (ręcznie wprowadzany), plik z zablokowanymi adresami ip (także ręcznie wprowadzany) i warunek który wywali komunikat że słowo jest zablokowane.

W tej chwili definiuję co chwila $pole = pupa || $pole = pupa2 || $pole = pupa3

A widzę to tak :

$zablokowane_słowo = lista słów ALBO plik.txt

IF ($zablokowane słowo = pole formularza1) LUB ($zablokowane słowo = pole formularza2)
to ECHO "TO SŁOWO JEST ZABLOKOWANE"

i wszystko :)

serce.gifKocham Cię | Życie po Ślubie | Psychopatologia

Popełniłeś tylko jeden błąd ... jaki ? ... RAMBO !

Odnośnik do komentarza
Udostępnij na innych stronach

$file = file('slowa.txt');
foreach( $file as $word )
{
 if( stristr( $word, $formularz ) )
 {
	  $error = 1;
  } #ten warunek ignoruje wielkość liter i pozwala przeszukiwać całe zdania, a nie tylko porównywać wyrazy
}
if( $error == 1)
{
echo 'blad';
}

Edytowane przez MMP

stopka usunieta z wpoodu wirusa na stronie docelowej

Odnośnik do komentarza
Udostępnij na innych stronach

Z góry przepraszam za słowa :hello:

Moja wersja (mod czegos z sieci).

<?
// Usage:  This function return false if a bad word is detect.
//
// if (!CheckMSG($MSG))
//	 echo "Bad word detected";
// else
//	 echo "no bad words detected.
//


function CheckMSG($the_msg) {

$badwords = array("arse","arsehole","ass","ass muncher","assmuncher","buttmuncher","butmuncher",
					"butt muncher","but muncher","asshole","asstooling","asswipe","b!tch","b17ch",
					"b1tch","bastard","beefcurtins","bi7ch","bitch","bitchy","boiolas","bollocks",
					"breasts","brown nose","bugger","butt pirate","c0ck","cawk","chink","clitsaq",
					"cock","cockbite","cockgobbler","cocksucker","cum","crap","cunt","dago","daygo",
					"dego","dick","dick wad","dickhead","dickweed","douchebag","dziwka","ekto","enculer",
					"faen","fag","faggot","fart","fatass","feg","felch","ficken","fitta","fitte",
					"flikker","fok","fu*k","fark","fu***r","fucking","fuckwit","fuk","fuking",
					"futkretzn","fux0r","gook","h0r","handjob","helvete","honkey","hore","hump","injun",
					"kawk","kike","knulle","kraut","kuk","kuksuger","kurac","ku**a","langer","masturbation",
					"merd","motherfucker","motherfuckingcocksucker","mutherfucker","nepesaurio","nigga",
					"nigger","nonce","nutsack","one-eyed-trouser-snake","penis","picka","pissant",
					"pi**a","politician","prick","puckface","pule","pussy","puta","puto","rimjob",
					"rubber","scheisse","schlampe","schlong","screw","shit","shiteater","shiz",
					"skribz","sk******n","slut","spermburper","spic","sp*******j","splooge","spunk",
					"tatas","tits","titty","toss the salad","tossthesalad","tosser","tosspot",
					"twat","twatty","unclefucker","vagina","vittu","votze","wank","wanka","wanker","wankers",
					"wankstain","whore","wichser","wop","yed","queer","shi!t","d4mn","phuck","dyke", "gay",
					"fekoff", "fek", "fuking", "arsehole", "fiut", "pedał", "qr*a", "cwel","ku**a", "kurwi",
					 "ku**y", "kurwo","jebac", "jebac", "je***y", "je***i", "je***e", "jebie", "jebie", "jebaka", 
					 "jebak±", "", "", "pi****l", "pierdala", "pi*d", "piLd", "ruchac", "ruchac", "ruchal",
					  "ruchal", "ruchan", "ci*a", "ci**e", "ci*y", "cip±", "ci*e", "ci*e", "cipo", "cipci", "cipka",
					   "cipce", "cipki", "cipk±", "cipke", "cipke", "cipko", "cipek", "ocipi", "ku**s", "pierdziel",
						"osra", "sr*c", "sr*c", "sral", "sral", "sraniec", "srane", "szczac", "szczac", "szczal", "szczal",
						 "szczane", "szczyn", "pi****l", "pierdól", "suka", "suk±", "suke", "suke", "lachoci±g", "lachociag",
						  "burdel", "cwel", "dup", "udupi", "gówn", "gown", "gówienk", "gowienk", "skurczysyn", "su*****n","<",">");

$badlist_size = count($badwords);
trim($the_msg);
strip_tags($the_smg);

//test the text before removing characters.
for ($i=0; $i < $badlist_size; $i++)
{
	if (ereg($badwords[$i], $the_msg)) {
		return false;
	}
}	

for ($i=0; $i < $badlist_size; $i++)
{
	if (ereg(strrev($badwords[$i]), $the_msg)) {
	return false;
	}
}

//remove special characters
$the_msg = eregi_replace("[^a-z]+", "", $the_msg);

//test the text after removing characters.
for ($i=0; $i < $badlist_size; $i++)
{
	if (ereg($badwords[$i], $the_msg)) {
	return false;
	}
}
for ($i=0; $i < $badlist_size; $i++)
{
	if (ereg(strrev($badwords[$i]), $the_msg)) {
	return false;
	}
}	

return true;
}
?>

Odnośnik do komentarza
Udostępnij na innych stronach

Bardzo ładnie sprawdza się w działaniu skrypt MMP :) wielkie dzięki o to chodziło - szybkie i proste

dodatkowo niewiele zajmuje więc nie wpłynie to zbytnio na wielkość dokumentu

edit :

co prawda poradziłem sobie z tym w inny sposób,

ale należało by dodać jeszcze coś w przypadku kiedy pole jest puste, ponieważ wywala komunikat

" stristr empty .... itd. "

Edytowane przez zerocool

serce.gifKocham Cię | Życie po Ślubie | Psychopatologia

Popełniłeś tylko jeden błąd ... jaki ? ... RAMBO !

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności