Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] walidacja danych w polach formularza
Forum PHP.pl > Forum > Przedszkole
powertee
Witam, próbuje zrobić formularz z walidacją danych, po krotce o co chodzi:
1. pole imie nie powinno zawierać mniej niż 3 znaki
2. to samo z polem nazwisko
3. email powinien posiadać @ i przynajmniej 1 kropkę "."
4 pole numer telefonu
żadne z tych pól nie powinno być puste.
formularz przesyła dane do kolejnej strony w której zostają zapisane do bazy danych.
formularz powinien wyświetlać komunikat dla źle wpisanych danych lub gdy pole jest puste(dla każdego przypadku osobny komunikat).
Samo zapisanie do bazy już osiągnąłem ale chodzi mi o tą walidacje.

  1. <?
  2. $required = array("imie" => "Imie" ,
  3.  "nazwisko" => "Nazwisko" );
  4. foreach($required as $field => $label) {
  5. if (!$_POST[$field]) {
  6. $warnings[$field] = "Pole obowiązkowe";
  7. }
  8. }
  9.  
  10. if ($_POST["email"] &&
  11. !ereg("^[^@]+@([a-z-]+.)+[a-z]{2,4}$". $_POST[ "email"]))
  12. $warnings["email"] = "Nieprawidłowy adres e-mail.";
  13.  
  14. if ($_POST["telefon"] &&
  15. (!ereg("^([[:digit:]]{2})[[:digit:]]{3}[[:space:]][[:digit:]]{2}[[:space:]][[:digit:]]{2}$$",
  16. $_POST["telefon"]) ||
  17.  
  18. !ereg("^([[:digit:]]{2))[[:digit:]]{1}[[:space:]][[:digit:]]{3}
  19. [[:space:]][[:digit:]]{3}$",
  20. $_POST["telefon"]) ||
  21.  
  22. !ereg("^[[:digit:]]{3}[[:space:]][[:digit:]]{3}[[:space:]][[:digit:]]{3}$",
  23. $_POST["telefon"])))
  24. $err .= "nieprawidłowy format telefonu";
  25.  
  26. if (count($warnings) > 0) {
  27.  
  28. ?>
  29.  
  30.  
  31. <form action="dodaj.php" method=post>
  32. <table border="0" width="750" cellspacing="1" cellpadding="3"
  33.  bgcolor="#353535" align="center">
  34. <tr>
  35.  <td bgcolor="#ffffff" width="30%">Imie:</td>
  36.  <td bgcolor="#ffffff" width="70%">
  37. <input type="text" name="imie" value="<? echo $_POST["imie"]; ?>">
  38.  </td>
  39.  <td><? echo $warnings["imie"]; ?></td>
  40. </tr>
  41. <tr>
  42.  <td bgcolor="#ffffff" width="30%">Nazwisko</td>
  43.  <td bgcolor="#ffffff" width="70%">
  44. <input type="text" name="nazwisko" value="<? echo $_POST["nazwisko"]; ?>">
  45.  </td>
  46.  <td><? echo $warnings["nazwisko"]; ?></td>
  47. </tr>
  48. <tr>
  49.  <td bgcolor="#ffffff" width="30%">Email</td>
  50.  <td bgcolor="#ffffff" width="70%">
  51. <input type="text" name="email" <? if($warnings["email"]) echo "STYLE=\"shaded\"";?> value="<? echo $_POST["email"]; ?>">
  52.  </td>
  53.  <td><? echo $warnings["email"]; ?></td>
  54. </tr>
  55. <tr>
  56.  <td bgcolor="#ffffff" width="30%">telefon</td>
  57.  <td bgcolor="#ffffff" width="70%">
  58. <input type="text" name="telefon" value="<? echo $_POST["telefon"]; ?>">
  59.  </td>
  60.  <td><? echo $warnings["telefon"]; ?></td>
  61. </tr>
  62.  
  63. <tr>
  64. <td bgcolor="#FFFFFF" colspan="2" align="center">
  65. <input type="submit" value="Dodaj">
  66. </td>
  67. </tr>
  68. </table>
  69. </form>
  70. <?
  71. }
  72. else {
  73. echo "Dane wprowadzono prawidłowo:D";
  74. }
  75. ?>
Sabistik
Tytuł tematu nie spełnia wymagań regulaminu działu przedszkole. Zamykam. Po zgłoszeniu poprawnej formy któremukolwiek z moderatorów (wraz z linkiem do tego tematu) zostanie otwarty.

Naucz się czytać ze zrozumieniem, bo następnym razem tematy będą usuwane.
powertee
nie wiem co jest nie tak w tym skrypcie, chociaż wpisuje błędne dane i tak wpisuje je do bazy
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.