Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z formularzem do wysyłania meili
Forum PHP.pl > Forum > PHP
pyrek
Witam! mam zrobiony formularz w sklepie internetowym który słóży do szybkiego kontaktu ze sprzedawcą.
Jednak od jakiegoś czsu jakiś robot lub cholera wie co wykorzystuje ten formularz do rozsyłania śmieci.

i nie mam pojęcia jak to zabezpieczyc przed takim działaniem.

POMOCY!
  1. <?php
  2. if($_GET['wia']=='send'){
  3. if($_POST[imie_wia] and $_POST[mail_wia] and $_POST[tresc_wia] and $_POST[send_wia]=="ok"){
  4.  
  5. $odpowiedz=$_POST[mail_wia];
  6.  
  7. $email=$email_conf;
  8. $headers = "From: $email_confn";
  9. $headers .= "Reply-To: $odpowiedzrn";
  10. $headers .= "MIME-Version: 1.0rn";
  11. $headers .= "Content-Type: text/html; charset="iso-8859-2"";
  12. $headers .= "X-Priority: 3rn";
  13. $headers .= "X-MSMail-Priority: Normalrn";
  14. $headers .= "X-Mailer: Microsoft Outlook Express 6.00.2900.2180rn";
  15. $headers .= "X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180rn";
  16.  
  17.  
  18.  
  19. $tresc ="
  20. Szybki kontakt z administracją:<br>
  21. <table cellSpacing=0 cellPadding=0 width=100% 
  22. style="border-bottom:1px solid $kolor4 ;
  23.  border-left:1px solid $kolor4 ; border-top: 1px solid $kolor4; 
  24. border-right: 1px solid $kolor4">
  25. <tr><td>
  26. <table width=100% bgcolor="$kolor10"><tr><td><b>$_POST[temat_wia]
  27. </b></td></tr></table>
  28. <table ><tr><td><b>cena:</b> </td><td>$_POST[cena_wia]
  29. </td></tr></table><br><br>
  30. <table ><tr><td><b>Dane klienta: </b></td><td align=left>
  31. $_POST[imie_wia]<br>
  32. E-mail: <a href="mailto:$_POST[mail_wia]">$_POST[mail_wia]</a>
  33. </td></tr></table>
  34. <br><br><table width=100%><tr><td valign=top><b>Treść:</b> 
  35. </td><td>$_POST[tresc_wia]<br><br></td></tr></table>
  36. </td></tr></table>
  37. ";
  38.  
  39.  
  40. $temat ="Szybki kontakt z administracją: $_POST[temat_wia]";
  41. $email_do=$email;
  42. $adminmail = "$email_conf";
  43. if($smtp_conf=='1'){
  44. include"includes/function.php";
  45. if(smtpmail($email_do, $temat, $tresc, $headers)){
  46. $stan_z='ok';
  47. } 
  48. else{ 
  49. $stan_z='bad';
  50. } }
  51.  
  52. if($smtp_conf=='0'){
  53.  mail($email_do, $temat, $tresc, $headers);
  54. $stan_z='ok';}
  55.  
  56. if($stan_z==ok){
  57. echo"<center><b>Wiadomoś została wysłana poprawnie</b></center>";
  58.  }
  59.  }else{ echo"<center><b>PROSZĘ PODAĆ WSZYSTKIE POTRZEBNE DANE 
  60. W FORMULARZU KONTAKTOWYM!</b></center>"; }
  61.  }
  62. ?>
Cienki1980
Nie tak dawno gdzieś na forum było ... ale nie pamiętam już gdzie.

Najprosciej chyba będzie jak dodasz w formularzu jedno pole ukryte. Użytkownik nie będzie go widział, a robot korzystający z formularza będzie i będzie je wypełniał.

Sprawdź podczas wysyłania, czy pole to jest puste, jeżeli tak wysyłaj, jeżeli nie nie wykonuj funkcji mail.
paweln
np.: dodatkowe pole "tekst z obrazka" chapcha czy jakoś takoś. Generujesz za pomocą php obrazek z ciągiem cyfr i liter,nastepnie porównujesz z danymi wprowadzonymi w formularzu i tyle. Oczywiście musisz ten losowy ciąg cyfr i liczb gdzieś chwilowo przetrzymać aby porównać.
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.