Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Lekka blokada "przekleństw"
ahold
post 30.07.2009, 16:14:11
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.05.2009

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


Witajcie,

Dzisiaj moje TODO stwierdziło że trzeba się zabrać za problem "przekleństw", wiadomo że nikt nie lubi na siłę gdy cenzuruje się internet, więc ograniczymy się do loginów naszych podopiecznych.

W ciągu kilku chwil, powstała taka oto funkcja.

  1. <?php
  2. function niedozwolony_login($login)
  3. {
  4. $ilosc=0;
  5. global $dbh;
  6. global $user;
  7.  
  8. $userek=$user['id'];
  9. $sql = "SELECT *
  10. FROM niedozwolone_loginy
  11. ";
  12.  
  13. foreach ($dbh->query($sql) as $row)
  14.        {
  15.  
  16. $findme   = $row['tresc'];
  17. $pos = strpos($login, $findme);
  18. if ($pos === false)
  19. {
  20.    //nie znaleziono
  21. } else
  22. {
  23. return 1;
  24. }
  25.  
  26.        }
  27. return 0;
  28.  
  29. }
  30. ?>


Spełnia ona swoje zadanie, ale niestety w 150 %.
Już mówię.

Weźmy, że dodaję do bazy danych zablokowane słowo "suka".
Użytkownik wpisuje, borsuka <- oops, login zabroniony.


Czy ma ktoś jakąś anty koncepcję ?.

Może przerobić bazę danych, na full tekst, i wydać zapytanie z obliczeniem wagi, wtedy słowo suka = miało by wagę 100 %, a borsuka już nie ?


Czekam na opinię.

Pozdrawiamy
Go to the top of the page
+Quote Post
Wicepsik
post 30.07.2009, 18:36:09
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Może wyrażenia regularne??

  1. <?php
  2. foreach ($dbh->query($sql) as $row)
  3. {
  4.    $findme = $row['tresc'];
  5.    $pos = strpos($login, $findme);
  6.    if (preg_match('/^'.$findme.'$/i', $login){
  7.   //nie znaleziono
  8.    }else{
  9.        return 1;
  10.    }
  11.  
  12. }
  13. ?>


Ten post edytował Wicepsik 30.07.2009, 18:36:29


--------------------
Go to the top of the page
+Quote Post
Skie
post 31.07.2009, 09:28:03
Post #3





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

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


zastanów się czy jest sens coś takiego robić, zauważ, że jeżeli odblokujesz "borsuka" to jednocześnie odblokujesz takie nicki jak np. "wielkasuka" - a to też raczej do ładnych nie należy


--------------------
Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+
Strona Domowa | Elradia MMORPG
FireFox: make the web better.
Go to the top of the page
+Quote Post
dotangelo
post 31.07.2009, 09:43:19
Post #4





Grupa: Zarejestrowani
Postów: 62
Pomógł: 3
Dołączył: 12.04.2007
Skąd: Wągrowiec

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


Musiałbyś ręcznie moderować loginy, jeśli "suka" wystąpi w "borsuka", wtedy wysyłaj sobie dane, że login MOŻE być nieodpowiedni, i ręcznie go sprawdzaj. Inaczej będzie to dosyć trudno zrobić.
Go to the top of the page
+Quote Post
ahold
post 31.07.2009, 10:03:06
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.05.2009

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


Czyli praktycznie nieciekawa sprawa.

Trudno.

Ten post edytował ahold 31.07.2009, 10:03:23
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 04:36