Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] AntySpamBot, Jak to zrobić?
partoles
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 8.10.2010

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


Witam państwa serdecznie,
Mam problem, niestety z Botami, potrafią wysyłać po 30 wiadomości do ShoutBoxa, a nawet za spamować moduł.
Nie wiem co mam robić.
Szukam łatwego sposobu zapory przeciwko nim, np: pytanie 2+7 = ?

W formularzu dodałem następujący punkt:
  1. function wspolpraca() {
  2. $data = date("Ym");
  3. echo'';
  4. echo("<form method=\"post\" action=\"wspolpraca.php?cmd=wspolpraca_dodawanie\">
  5. Imie Dyrektora:<br>
  6. <input type=\"text\" name=\"imie\"><br>
  7. Nazwisko Dyrektora:<br>
  8. <input type=\"text\" name=\"nazwisko\"><br>
  9. Mail Dyrektora:<br>
  10. <input type=\"text\" name=\"mail\"><br>
  11. GG Dyrektora:<br>
  12. <input type=\"text\" name=\"gg\"><br>
  13. Adres Szkoly/Organizacji(bez http:// i www):<br>
  14. <input type=\"text\" name=\"daktyl\"><br>
  15. Nazwa Szkoly/Organizacji:<br>
  16. <input type=\"text\" name=\"nazwa\"><br>
  17. Pytanie: 2+7 = ?:<br>
  18. <input type=\"text\" name=\"oblicz\"><br>
  19. <input type=\"hidden\" name=\"akcja\" value=\"wspolpraca_dodawanie\"><br>
  20. <input type=\"submit\" value=\"Wysli\">
  21. </form>
  22. ");
  23. }
  24.  
  25. function wspolpraca_dodawanie() {
  26. $data = date("Ym");
  27. global $imie, $nazwisko, $mail, $gg, $daktyl, $nazwa, $acc, $cmd;
  28. if($imie==''){echo"Formularz nie wypełniony poprawnie: puste pola sa niedozwolone!Pole 1";}
  29. elseif($nazwisko==''){echo"Formularz nie wypełniony poprawnie: puste pola sa niedozwolone!Pole 2";}
  30. elseif($mail==''){echo"Formularz nie wypełniony poprawnie: puste pola sa niedozwolone!Pole 3";}
  31. elseif($gg==''){echo"Formularz nie wypełniony poprawnie: puste pola sa niedozwolone!Pole 4";}
  32. elseif($daktyl==''){echo"Formularz nie wypełniony poprawnie: puste pola sa niedozwolone!Pole 5";}
  33. elseif($nazwa==''){echo"Formularz nie wypełniony poprawnie: puste pola sa niedozwolone!Pole 6";}
  34. else { $potwierdz = 1; }
  35. if($potwierdz=='1'){
  36. $zapytanie="INSERT INTO daktyle (imie, nazwisko, mail, gg, daktyl, nazwa, acc)
  37. VALUES ('$imie', '$nazwisko', '$mail', '$gg', '$daktyl', '$nazwa', '0')";
  38. $wynik=mysql_query($zapytanie);
  39. $id = mysql_insert_id();
  40. echo("Podanie o Współpracę Zostanie Niebawem Rozpatrzone.Mail z potwierdzeniem wypełnienia formularza dojdzie w ciągu 2h..");
  41. echo' <BR>
  42. </center>
  43. ';
  44.  
  45. mail("".$mail."", "***");
  46. }
  47. }

Teraz narasta pytanie co dodać w funkcję wspolpraca_dodawanie, aby mógł sprawdzić czy odpowiedź jest poprawna.

Ten post edytował partoles 9.10.2010, 09:46:24
Go to the top of the page
+Quote Post
melior
post
Post #2





Grupa: Zarejestrowani
Postów: 68
Pomógł: 3
Dołączył: 7.12.2009

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


Ja bym dodał taki fragment

  1. (...)
  2. else { $potwierdz = 1; }
  3.  
  4. if($oblicz!=9){ echo "Botów nie obsługujemy."; $potwierdz=0}
  5.  
  6. if($potwierdz=='1'){
  7. $zapytanie="INSERT INTO daktyle (imie, nazwisko, mail, gg, daktyl, nazwa, acc)
  8. VALUES ('$imie', '$nazwisko', '$mail', '$gg', '$daktyl', '$nazwa', '0')";
  9. (...)


Ten post edytował melior 9.10.2010, 09:53:51
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Do formularza możesz dodać jakiś losowy ciąg jako ukryte pole i zapisać w sesji, robi tak np. nk.pl


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
partoles
post
Post #4





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 8.10.2010

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


Mam problem, jak wpiszę np: 9 to pojawia się komunikat "Botów nie obsługujemy!"
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Bo masz wyłączone register_globals, z resztą słusznie.

Zamiast $oblicz powinno być: $_POST['oblicz']


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
partoles
post
Post #6





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 8.10.2010

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


Pomogło, temat można zamknąć.
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 Aktualny czas: 22.08.2025 - 11:02