Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] formularz z weryfikacją danych
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
powertee
potrzebuje formularza weryfikującego wpisane dane.
imie i nazwisko ma mieć powyżej 3 znaków
email ma mieć @ i conajmniej 1 "." kropkę
wszystkie pola muszą być uzupełnione... pozatym formularz wysyła dane do bazy danych mysql które nie mogą sie dublować.
obok pól ma sie pokazać komunikat czy dane wpisane prawidowo czy nie...
próbpwalem coś takiego stworzyć ale lipa:/
jeśli mieli byście coś takiego to prosze o wstawienie
nospor
Cytat
próbpwalem coś takiego stworzyć ale lipa
Jakbys jednak chcial sie czegos nauczyc, to pokaz dotychczasowy kod co masz, powiedz konkretnie z czym masz problem a "ludziska" zapewne ci pomogą.
powertee
zmajstrowałem coś takiego narazie ale nie działa, a powino coś sie wyswietlić zanim formularz zostanie wysłany do następnej strony.Obecna strona powinna wyswietlać komunikat...


  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. ?>
smerf
Mialem podobnego problema i rozwiazalem go mniej wiecej tak.
Nie jest to na 100% to co potrzebujesz ale mozna przerobic i bedzie ok

  1. <?php
  2. // strlen - zlicza ilosc znakow
  3. $dl_nip = strlen($NIP);
  4. $dl_mail = strlen($Mail);
  5. // sprawdza czy podanae dane wystepuja już w bazie
  6. // -- NIP --
  7. $sprawdz_nip= "SELECT NIP FROM $tabela WHERE NIP='$NIP'";
  8. $rezultat_sprawdz_nip=mysql_query($sprawdz_nip, $connection);
  9. $count_nip=mysql_num_rows($rezultat_sprawdz_nip);
  10.  
  11. // =============== SPRAWDZENIE POPRAWNOSCI NIP'U
  12. if ($count_nip == 0 && $dl_nip == 13 && (ereg ( '^[0-9]{3}-[0-9]{3}-[0-9]{2}-[0-9]{2}$' , $NIP ))) 
  13.  echo"<b>NIP: </b><i>$NIP</i><br />";
  14. else
  15. {
  16. if ($count_nip !=0)
  17. echo"<b>NIP: <font color=\"red\">$NIP występuje już w bazie.</big></b></font><br>";
  18.  else
  19. {
  20. if ($dl_nip==0)
  21.  echo"<b>NIP: <font color=\"red\">Nie podano numeru NIP.</big></b></font><br>";
  22. else
  23. {
  24. echo"<b>NIP: <font color=\"red\">Wprowadzony NIP jest niepoprawny.</big></b></font><br>";
  25. }}}
  26. // =============== SPRAWDZENIE POPRAWNOSCI ADRESU E-MAIL
  27. if ($dl_mail <> 0 && (ereg('^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$', $Mail)))
  28. echo"<b>Mail: </b><i>$Mail</i><br>";
  29. else
  30. {
  31. if ($dl_mail==0)
  32. echo"<b>Mail: <font color=\"red\">Nie podano adresu.</big></b></font><br>";
  33. else
  34. {
  35. echo"<b>Mail: <font color=\"red\">Poidany adres ma zły format.</big></b></font><br>";
  36. }}
  37. ?>


Zmienne NIP i Mail przekazuje z normalnego formularza poprzez get
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-2024 Invision Power Services, Inc.