Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzenie formularza w PHP
Forum PHP.pl > Forum > PHP
mateusz928
Witam. Jestem w trakcie tworzenia strony WWW i napotkałem następujący problem. Wykonałem coś a la newsletter i ankietę, które są wysyłane na maila. Potrzebuję, aby użytkownik nie mógł wszczepiać w te skrypty złośliwego kodu, a także, żeby skrypt sprawdzał, czy wszystkie, bądź wybrane pola są wypełnione, a także, aby tam gdzie e-mail ,faktycznie jest wpisany e-mail.

W pierwszym kodzie, tj. newsletter, potrzebuję kodu, który zabezpieczy wysyłane dane i sprawdzi, czy wszystkie pola są wypełnione, inaczej wypisze, że nie wypełniłeś wszystkich pól. Także powinien sprawdzić, czy w polu e-mail, użytkownik wpisał e-mail. (wymagana @) Jeśli nie, to wypisze, że niepoprawnie wprowadzono dane.

W drugim natomiast, tj. ankieta, potrzebuję kodu, który zabezpieczy wysyłane dane i sprawdzi, czy są wypełnione pola: 1)conajmniej jeden "ptaszek" z sekcji: "Mam problem z:", 2) a także pole e-mail i telefon. W przeciwnym wypadku, wyświetli komunikat, że nie są wypełnione wymagane pola. Także powinien sprawdzić, czy w polu e-mail, użytkownik wpisał e-mail. (wymagana @) Jeśli nie, to wypisze, że niepoprawnie wprowadzono dane.

Zamieszczam kody źródłowe obu plików:
  1. if (count($_POST))
  2. {
  3.  
  4. $email = "sardflam@o2.pl"; // Adres e-mail adresata
  5. $subject = "Newsletter"; // Temat listu
  6. $message = "<center><b><br/><br/>Dziękujemy za zgłoszenie.</b></center>"; // Komunikat
  7. $error = "<center><b><br/><br/>Wystąpił błąd podczas wysyłania zgłoszenia.</b></center>"; // Komunikat błędu
  8. $charset = "utf-8"; // Strona kodowa
  9.  
  10. $head =
  11. "MIME-Version: 1.0\r\n" .
  12. "Content-Type: text/plain; charset=$charset\r\n" .
  13. "Content-Transfer-Encoding: 8bit";
  14. $body = "";
  15. foreach ($_POST as $name => $value)
  16. {
  17. if (is_array($value))
  18. {
  19. for ($i = 0; $i < count($value); $i++)
  20. {
  21. $body .= "$name: " . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  22. }
  23. }
  24. else $body .= "$name: " . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  25. }
  26. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  27. }
  28. else
  29. {
  30.  
  31. echo '<form action="?" method="post">
  32.  
  33. <center><br/><br/><b>Wypełnij poniższe pola, aby otrzymywać informacje od Ars Cogitandi Sp. z o.o.</b><br/><br/><br/><b>E-mail: <input type="text" name="E-mail" /><br/><br/>
  34. Imię i nazwisko: <input type="text" name="Imię/Nazwisko" /><br/><br/>
  35. Stanowisko: <input type="text" name="Stanowisko" /><br/><br/>
  36. Firma: <input type="text" name="Firma" /><br/><br/><br/>
  37. <i>Klikając przycisk "Akceptuję" wyrażasz zgodę na otrzymywanie informacji od Ars
  38. Cogitandi Sp. z o.o.</i><br/><br/><br/>
  39. <input type="submit" value="Akceptuję"/></b></center>
  40.  
  41. </form>'; }




Drugi kod:

  1.  
  2. if (count($_POST))
  3. {
  4.  
  5. $email = "sardflam@o2.pl"; // Adres e-mail adresata
  6. $subject = "Ankieta"; // Temat listu
  7. $message = "<center><b><br/><br/>Dziękujemy za zgłoszenie.</b></center>"; // Komunikat
  8. $error = "<center><b><br/><br/>Wystąpił błąd podczas wysyłania zgłoszenia.</b></center>"; // Komunikat błędu
  9. $charset = "utf-8"; // Strona kodowa
  10.  
  11. $head =
  12. "MIME-Version: 1.0\r\n" .
  13. "Content-Type: text/plain; charset=$charset\r\n" .
  14. "Content-Transfer-Encoding: 8bit";
  15. $body = "";
  16. foreach ($_POST as $name => $value)
  17. {
  18. if (is_array($value))
  19. {
  20. for ($i = 0; $i < count($value); $i++)
  21. {
  22. $body .= "$name: " . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  23. }
  24. }
  25. else $body .= "$name: " . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  26. }
  27. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  28. }
  29. else
  30. {
  31.  
  32. echo '<form action="?" method="post">
  33.  
  34. <center><div style="text-align: left; margin-left: 300px;"><br/><br/><b>
  35.  
  36. Powiedz nam o swoich problemach, a my dostarczymy Tobie rozwiązanie.<br/><br/>
  37.  
  38. Wypełnij poniższą ankietę, która pozwoli na znalezienie rozwiązania:<br/><br/>
  39.  
  40. Mam problem z:<br/><br/>
  41. <input type="checkbox" name="Produkcja[]"/>Produkcja<br />
  42. <input type="checkbox" name="Usługi[]"/>Usługi<br />
  43. <input type="checkbox" name="Zakupy/logistyka/magazyn[]"/>Zakupy / logistyka / magazyn<br />
  44. <input type="checkbox" name="Biura/administracja[]"/>Biura / administracja<br />
  45. <input type="checkbox" name="Serwis/utrzymania ruchu[]"/>Serwis / utrzymania ruchu<br />
  46. <input type="checkbox" name="Jakość[]"/>Jakość<br />
  47. <input type="checkbox" name="Inne[]" onclick="this.form.elements[\'Inne\'].disabled = !this.checked" />Inne (jakie)
  48. <input type="text" name="Inne" disabled="disabled" /><br/><br/>
  49. <text style="position: relative; bottom: 40px;">Dodatkowe informacje: </text><textarea name="Dodatkowe" cols="25" rows="5" wrap="physical"></textarea><br/><br/>
  50. Aby umożliwić kontakt pozostaw swoje dane:<br/><br/>
  51. Nazwa firmy: <input type="text" name="Firma"/><br/><br/>
  52. E-mail: <input type="text" name="E-mail"/><br/><br/>
  53. Telefon: <input type="text" name="Telefon"/><br/><br/>
  54. </div>
  55. <input type="submit" value="Wyślij"/></b>
  56. </center>
  57. </form>';
  58.  
  59. }
erix
Zlecenie?

Przeczytałeś wątki o bezpieczeństwie (nota bene, przyklejone)?
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.