![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 19.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Zbudowałem taki system antyspamowy dla dodawania komentarzy. Tzn. mam formularz z kilkoma polami i są losowane trzy cyfry, które tworzą liczbę i jeżeli w polu spam jest wpisana liczba z wylosowanych cyfr to komentarz zostaje dodany. No właśnie.. niestety nie zostaje dodany, nie wiem z czego to wynika. Gdy usunę opcję z tym anty spamem to wszystko chodzi... Może ktoś widzi coś czego ja nie widzę ?
Ten post edytował mariuszstanikowski 20.08.2009, 18:17:54 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Prawdopodobieństwo, że komentarz zostanie dodany to 1/(9*9*9) (jeśli $_POST['spam'] to trzy cyfrowa liczba nie zawierająca zer). Co kryje się się pod zmienną $_POST['spam']? Jakim prawem ta zmienna ma być równa dopiero co wylosowanej liczbie? Czemu poprostu liczby nie wylosujesz za pomocą rand(100, 999) (nie chcesz mieć zer?)? Chyba próbujesz zrobić coś na wzór captcha, więc poszukaj w googlach pod hasłem "captcha".
Liczbę musisz wylosować, gdy wyświetlasz formularz, zapisać ją np. w sesji i gdy formularz został wysłany sprawdzić czy użytkownik wpisał taką samą liczbę. Ten post edytował -=Peter=- 20.08.2009, 18:30:25 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 19.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
$_POST['spam'] jest to wysyłana zawartość pola w formularzu w które wpisujemy wylosowaną liczbę. jeżeli komentarz ma zostać dodany musi być wprowadzona taka sama jak ta wylosowana.
nie losuję jednej liczby, ponieważ mam grafiki od 1-9 i losuję trzy cyfry aby z grafik ułożyło mi liczbę. Liczba jest losowana gdy wyświetlam formularz... Kod formularza: Ten post edytował mariuszstanikowski 20.08.2009, 18:32:13 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Wyświetlając formularz losujesz trzycyfrową liczbę, zapisujesz ją w sesji. Użytkownik wypełnia formularz, wpisuje do jednego z inputów ten kod co ma na obrazku, wysyła formularz. Po wysłaniu sprawdzasz, czy $_POST['spam'] == $_SESSION['spam'], tylko czasem nie generuj nowej liczby po wysłaniu formularza (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 19.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie chyba cały sęk i problem w tym, że po wysłaniu formularza cyfry losują się od nowa i dlatego nie porównuje z tymi wcześniej wylosowanymi tylko z tymi nowymi....
Ten post edytował mariuszstanikowski 20.08.2009, 18:47:59 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 20:27 |