Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prosty i dobry sposób na spam [formularze]
Forum PHP.pl > Forum > Przedszkole
djmassive
Witam,

Ostatnio napisałem sobie prosty sposób na księgę gości i nie tylko odporną na spam w postaci wpisów typu:

Hi, nice site
http://sex.sex.com http://sex.sex.com http://sex.sex.com


To utrapienie dla każdego początkującego programisty. zauważmy, że w tego typu postach roboty spamujące wpisują nam głównie adresy w wyżej wymienionej postaci, albo w bbcode np.:

  1. <?php
  2. [url=http://sex.sex.com]sex.sex.com[/url]
  3. ?>


Poniższy skrypt pozwala eliminować takie posty w zarodku, czyli tuż przed dodaniem do bazy. Działa na zasadzie cenzora (i do takiego celu można go również wykorzystać, rozbudowując np. o pobieranie zakazanych słów z bazy.

plik: spam-eliminator.php
  1. <?
  2. function spamCheck($zrodlo)
  3. {
  4.  
  5. $wynik = strpos($zrodlo , "http://");
  6.  
  7. }
  8. ?>


powyższy plik zawsze można zrobić na tablicy, jeżeli chcemy eliminować inne przykładowe kody, wpisując niechciane elementy posta np wyżej wymienione "[url".

sprawdzenie, czy w podanym wpisie, istnieje jeden z wymienionych 'czarnych słów, oznaczeń' następuje tak:

plik: test.php
  1. <?
  2. include("spam-eliminator.php");
  3. if ($mod="sprawdz")
  4. {
  5. if(spamCheck($komentarz)==true)
  6. { echo "Spam"; exit; } else
  7. echo "Nie wykryto zakazanej treści"; 
  8. }
  9.  
  10. ?>
  11. <form action="test.php" method="post">
  12. <textarea name="komentarz" rows=5 cols=10></textarea></br></br>
  13. <input type="submit" name="mod" value="sprawdz">
  14. </form>


Tak to mniejwięcej wygląda. Jest to najprostrzy przykład dla początkujących. Może z tymi bardziej w temacie rozbudujemy ten skrypt questionmark.gif Wystarczy, aby zrobić to na bazie, gdzie słowa wygodnie będzie można dodawać i usuwać.

Pozdrawiam,

ps. wiem, że ameryki nie odkryłem, ale może się komuś przyda biggrin.gif
KG-
Takie wpisy zwykle tworzą boty, dyskusja o tym jak im przeciwdziałać jest prowadzona tutaj: Temat: Boty Jak przeciwdzialac

Jeśli chodzi o wpisy dokonywane przez użytkowników to możesz ewentualnie zablokować tagi html aby nie mogli wklejać tam zewnętrznych linków (bo to w końcu księga gości a nie katalog stron www).
bugme
IMHO ten sposób jest ciut za prosty.
Osobiście polecam liczenie linków i słów (żeby cokolwiek normalnie dało się podlinkować) albo od razu bardziej precyzyjny filtr antyspamowy.
strife
Cytat(bugme @ 11.02.2007, 14:42:51 ) *
IMHO ten sposób jest ciut za prosty.
Osobiście polecam liczenie linków i słów (żeby cokolwiek normalnie dało się podlinkować) albo od razu bardziej precyzyjny filtr antyspamowy.

Nie ma sensu się rozdrabniać, kontynuuj w temacie który podał kolega wyżej, poza tym wątek jest już dosyć stary.

Zamykam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.