Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wychwytywanie botow w formularzu z liczbami do wpisania...
Forum PHP.pl > Forum > Przedszkole
uglukha
Witam,
mam takie szybko pytanko. Chce wywalac spam boty probujace wpisywac cos w moim formularzu na jakas strone. W formularz w niektórych polach nalezy wpisywac tylko liczby. Oczywiscie bot tego nie wie. Bedzie wstawial wszedzie linki http://www.dsgsdgsfdgds.com/ . I pomyslalem sobie, ze bede na poczatku szukal w zmiennej z POST "h" lub "w" lub kropki, bo te 3 rzeczy prawie zawsze sa w linkach. Czy dobrze rozumuje? Czy moze szybciej i mniej zasobozerne bedzie sprawdzenie czy sa tam liczby (i null - pole moze byc puste)?

  1. $liczba = $_POST['liczba'];
  2.  
  3. if (preg_match(".", "$liczba"))
  4. echo "Jesteś botem lub analfabetą, przekierowuję Cie na www.sejm.gov.pl. Dziękuję.";



z gory dzieki za odp.
Fifi209
ctype_
Zainteresuj się.
uglukha
dzięki! użyłem ctype_alpha
Fifi209
Do liczb jest ctype_digit
uglukha
no tak, ale ja chciałem wykrywac litery w polach, gdzie czlowiek normalny wpisze cyferki tylko, a bot bedzie sie staral wpisac jakis link czy inne badziewie.
w sumie mozna uzyc ktorejkolwiek z tych funckji, zalezy od ktorej strony podejsc.

z uzyciem ctype_alpha warunek wyszedl mi krotszy winksmiley.jpg
Fifi209
To inaczej...
Nigdy ale to NIGDY nie określaj niedozwolonych znaków! To błędne podejście, zawsze o czymś zapomnisz...

Jeżeli użytkownik ma podać liczę to tylko i wyłącznie LICZBY przejdą walidację.
Dlatego też podałem Ci odpowiednią funkcję.
uglukha
Masz rację.

Moglbym prosic o ponowne nakierowanie jak prosto to przerobic? Programuje for fun, i nie wiem jak to inaczej zapisac.

  1. if (ctype_alpha($liczba)) {
  2. die ( include ("bot.php") );
  3. }
  4.  
  5. a tu jest sobie reszta kodu



Tak chyba to nie zadziala?
  1. if (ctype_digit($liczba)) {
  2. a tu jest sobie reszta kodu (tu sa rozne if'y itd. wiec sie nie wiem jak to zapisac) );
  3. }
  4.  
  5. else die ( include ("bot.php")
lord2105
  1. if (ctype_digit($liczba)) {
  2. //jeżeli ok
  3. }
  4. else include ("bot.php") ;//jezeli nie
uglukha
@lord2105
dzięki, coś wczesniej namieszalem z nawiasami, wszystko juz dzialo. BTW. die musi byc, bo na koncu pliku jest troche zwyklego htmla, ale to sobie dodalem juz.

Jeszcze jedno pytanie, jak dodac, aby oprocz znakow z ctype_digit dopuszczalo jeszcze dwukropek? Bo w jednym miejscu w formularzu mozna wpisac czas w postaci "23:30". Formuly wpisywania juz nie zmienie, bo od tego jest zalezne kilka innych skryptow.
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.