Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] zabezpieczenie formularza przed email injection
d4nny
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 31.12.2007

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


Witam, chodzi o formularz kontaktowy/zamówienia. Ma działać na vel.pl. Wysyłając maila przy pomocy tego formularza na mój e-mail zamiast danych przysłał kawałek kodu html. Obsługa hostingu naisała że: "naglowki maila podawane w skrypcie funkcji mail() powinny byc oddzielane przez "\n", a nie "\r\n" - taka forme przyjmuja platformy unixowe". Zmieniłem to wg. wskazań no i już przychodzą prawidłowe dane ale podobno skrypt jest dziurawy, nie wiem jak go zabezpieczyc przed email injection czytalem o filtrach ale nie wiele tego w necie i nie wszystko dziala. Proszę o pomoc. Oto kod pliku zamowienie.php, kofu pliku z formularzem chyba nie ma potzreby wklejać.

  1. <?php
  2. $firma=$_POST['firma'];
  3. $imieinaz=$_POST['imieinaz'];
  4. $nazwaf=$_POST['nazwaf'];
  5. $adres=$_POST['adres'];
  6. $kod=$_POST['kod'];
  7. $miasto=$_POST['miasto'];
  8. $nip=$_POST['nip'];
  9. $tel=$_POST['tel'];
  10. $faks=$_POST['faks'];
  11. $email=$_POST['email'];
  12. $szkolenie=$_POST['szkolenie'];
  13. $liczba=$_POST['liczba'];
  14. $innaliczba=$_POST['innaliczba'];
  15.  
  16. $data=strftime(" %A, %d %B %Y");
  17. $nadawca_imie = "[Zgłoszenie ze strony]";
  18. $send_email ="d4nny89@gmail.com";
  19. $temat = "[Zgłoszenie ze strony] - Informacja o zgłoszeniu - zamówieniu";
  20. $headers = "MIME-Version: 1.0\n";
  21. $headers .= "Content-type: text/html; charset=iso-8859-2\n";
  22. $headers .= "From: $nadawca_imie <$email>\n";
  23. $body_mail = "<table width=600 border=0 cellpadding=1 cellspacing=2 align=center style=\"font-family: Verdana; font-size: 12px;\">
  24. <tr>
  25. <td colspan=2 align=center><b><u>".$temat."</u></b></td>
  26. </tr>
  27. <tr>
  28. <td colspan=2 align=center> </td>
  29. </tr>
  30.  
  31. <tr>
  32. <td width=166 align=right>Firma: </td>
  33. <td width=424><div align=\"justify\"><b>".$firma."</b></div></td>
  34. </tr>
  35.  
  36. <tr>
  37. <td width=166 align=right>Imię i Nazwisko: </td>
  38. <td width=424><div align=\"justify\"><b>".$imieinaz."</b></div></td>
  39. </tr>
  40.  
  41. <tr>
  42. <td width=166 align=right>Nazwa firmy: </td>
  43. <td width=424><div align=\"justify\"><b>".$nazwaf."</b></div></td>
  44. </tr>
  45.  
  46. <tr>
  47. <td width=166 align=right>Adres firmy: </td>
  48. <td width=424><div align=\"justify\"><b>".$adres."</b></div></td>
  49. </tr>
  50.  
  51. <tr>
  52. <td width=166 align=right>Kod pocztowy: </td>
  53. <td width=424><div align=\"justify\"><b>".$kod."</b></div></td>
  54. </tr>
  55.  
  56. <tr>
  57. <td width=166 align=right>Miasto: </td>
  58. <td width=424><div align=\"justify\"><b>".$miasto."</b></div></td>
  59. </tr>
  60.  
  61. <tr>
  62. <td width=166 align=right>NIP: </td>
  63. <td width=424><div align=\"justify\"><b>".$nip."</b></div></td>
  64. </tr>
  65.  
  66. <tr>
  67. <td align=right valign=top>Telefon(y): </td>
  68. <td align=left valign=top> <div align=\"justify\"><b>".$tel."</b></div></td>
  69. </tr>
  70.  
  71. <tr>
  72. <td align=right valign=top>Faks: </td>
  73. <td align=left valign=top> <div align=\"justify\"><b>".$faks."</b></div></td>
  74. </tr>
  75.  
  76. <tr>
  77. <td width=166 align=right>Adres e-mail: </td>
  78. <td width=424><div align=\"justify\"><b>".$email."</b></div></td>
  79. </tr>
  80.  
  81. <tr>
  82. <td width=166 align=right>Szkolenie: </td>
  83. <td width=424><div align=\"justify\"><b>".$szkolenie."</b></div></td>
  84. </tr>
  85.  
  86. <tr>
  87. <td width=166 align=right>Liczba osób poddanych szkoleniu: </td>
  88. <td width=424><div align=\"justify\"><b>".$liczba."</b></div></td>
  89. </tr>
  90.  
  91. <tr>
  92. <td width=166 align=right>Podaj inną liczbę, jeśli przekracza ona 10 osób: </td>
  93. <td width=424><div align=\"justify\"><b>".$innaliczba."</b></div></td>
  94. </tr>
  95.  
  96. <tr>
  97. <td colspan=2 align=center> </td>
  98. </tr>
  99.  
  100. <tr>
  101. <td colspan=2 align=center>Data przeslania zgłoszenia: $data</td>
  102. </tr>
  103.  
  104. </table>";
  105.  
  106. mail($send_email,$temat,$body_mail,$headers);
  107.  
  108. print "<br><center>Zgłoszenie zostało wysłane</center>";
  109. print "<br><center>skontaktujemy się z Tobą wkrótce</center>";
  110. ?>


Ten post edytował d4nny 5.06.2008, 14:30:46
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:54