Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: walidacja formularza
Forum PHP.pl > Forum > PHP
piotras85
Witam!
Tworzę stronkę odnośnie księgi przychodów i rozchodów i stanąłem na walidacji formularza dla kontrahentów. Mianowicie mam 5 pół: Imię, Nazwisko (nazwa firmy), Adres, Kod pocztowy, Miejscowość, NIP i teraz zaczynają się schody. Mam podstawową walidację w JavaScript odnośnie tego, że musisz wypełnić wszystkie pola i nic poza tym, a potrzebuję jeszcze walidację:
- kodu pocztowego
- nip'u (czy jest poprawny, zliczanie 9 pierwszych cyfr i porównywanie z ostatnią kontrolną cyfrą)
- jeżeli nip już istnieje w bazie to wywali błąd
- no i może jakieś sprawdzenie żeby ktoś nie wpisywał bzdur w nazwie firmy, adresie i miejscowości typu @#&

Jeszcze taka ciekawostka ale niekonieczna mianowicie jeżeli wpiszę kod pocztowy to w polu miejscowość automatycznie ukazuje się miejscowość smile.gif

Nie wiem teraz czy można to wszystko zrobić w JavaScript czy przerobić na walidację PHP exclamation.gif!

Dołączam mój kod html i php w celu pomocy za którą byłbym bardzo wdzięczny exclamation.gif! Z góry bardzo serdecznie dziękuję za pomoc.

HTML:
  1. <p align="center" class="style5">Dodaj kontrahenta</p>
  2.  
  3. <script language="JavaScript">
  4.  
  5. function checkform ( form )
  6. {
  7.  
  8. if (form.nazwa.value == "") {
  9. alert( "BŁĄD !!! \n---------------------- \nUzupełnij pole: Imię, Nazwisko (nazwa firmy) !!! \n----------------------" );
  10. form.nazwa.focus();
  11. return false ;
  12. }
  13. if (form.adres.value == "") {
  14. alert( "BŁĄD !!! \n---------------------- \nUzupełnij pole: Adres !!! \n----------------------" );
  15. form.adres.focus();
  16. return false ;
  17. }
  18. if (form.kod.value == "") {
  19. alert( "BŁĄD !!! \n---------------------- \nUzupełnij pole: Kod pocztowy !!! \nFormat: xx-xxx \n----------------------" );
  20. form.kod.focus();
  21. return false ;
  22. }
  23.  
  24. if (form.miejscowosc.value == "") {
  25. alert( "BŁĄD !!! \n---------------------- \nUzupełnij pole: Miejscowość !!! \n----------------------" );
  26. form.miejscowosc.focus();
  27. return false ;
  28. }
  29.  
  30. if (form.nip.value == "") {
  31. alert( "BŁĄD !!! \n---------------------- \nUzupełnij pole: NIP !!! \nFormat: xxx-xxx-xx-xx \n----------------------" );
  32. form.nip.focus();
  33. return false ;
  34. }
  35.  
  36.  
  37. return true ;
  38. }
  39. //-->
  40.  
  41. <form method="post" action="../php/dodajkontr.php" onSubmit="return checkform(this);">
  42. <table border="0" cellpadding="0" cellspacing="0" width="100%">
  43. <tr>
  44. <td><span class="style7">Imię, Nazwisko (nazwa firmy)</span></td>
  45. <div align="left">
  46. <input name="nazwa" type="text" id="nazwa" value="" size="50" maxlength="50" />
  47. </div></td>
  48. </tr>
  49. <tr>
  50. <td><span class="style7">Adres</span></td>
  51. <div align="left">
  52. <input name="adres" type="text" id="adres" size="50" maxlength="50" />
  53. </div></td>
  54. </tr>
  55. <tr>
  56. <td><span class="style7">Kod pocztowy</span></td>
  57. <div align="left">
  58. <input name="kod" type="text" id="kod" size="10" maxlength="6" />
  59. <span class="style10"> Format: xx-xxx</span></div></td>
  60. </tr>
  61. <tr>
  62. <td><span class="style7">Miejscowość</span></td>
  63. <div align="left">
  64. <input name="miejscowosc" type="text" id="miejscowosc" size="50" maxlength="50" />
  65. </div></td>
  66. </tr>
  67. <tr>
  68. <td><span class="style7">NIP</span></td>
  69. <div align="left">
  70. <input name="nip" type="text" id="nip" size="17" maxlength="13" />
  71. <span class="style10">Format: xxx-xxx-xx-xx</span>
  72. </div></td>
  73. </tr>
  74. <br />
  75. <p>
  76. <input type=submit value="Dodaj">
  77. </p>
  78. </form>
  79. </body>


PHP:
  1. <?
  2. $idkh=$_POST['idkh'];
  3. $nazwa=$_POST['nazwa'];
  4. $adres=$_POST['adres'];
  5. $kod=$_POST['kod'];
  6. $miejscowosc=$_POST['miejscowosc'];
  7. $nip=$_POST['nip'];
  8.  
  9. {
  10. $idkh = addslashes($idkh);
  11. $nazwa = addslashes($nazwa);
  12. $adres = addslashes($adres);
  13. $kod = addslashes($kod);
  14. $miejscowosc = addslashes($miejscowosc);
  15. $nip = addslashes($nip);
  16. }
  17.  
  18. @ $db = mysql_connect("mysql3.yoyo.pl", "db250812", "haslo");
  19. if (!$db)
  20. {
  21. echo"<div align='center'><font size='3' face='Tahoma'>Nie można nawiązać połączenia z bazą danych!!!</font>";
  22. }
  23.  
  24. mysql_select_db("db250812");
  25.  
  26. $query = "insert into kontrahenci values ('".$idkh."', '".$nazwa."', '".$adres."', '".$kod."', '".$miejscowosc."', '".$nip."')";
  27. $result = mysql_query($query);
  28.  
  29. if ($result)
  30.  
  31. echo"<div align='center'><font size='3' face='Tahoma'>Kontrahent <strong>$nazwa</strong> został dodany do bazy!!!</font>";
  32. ?>
misiek172
nie no czemu... można wszystko zrobić w JS ale zalecana jest róznierz walidacja w PHP, w razie jakby ktoś sobie JS wyłączył smile.gif

Jeśli chodzi o pole NIPu to najlepiej dać sobie w bazie UNIQUE i sprawdzać czy baza odżuciła czy nie // to zabezpiecznie ze strony PHP

natomiast jeśli chodzi o JS to użyć do tego AJAXa aby sprawdził czy istnieje taki NIP już.


Kod pocztowy.
trzeba wziąc jakiś notatnik taki książkowy smile.gif i spisać stworzyć tablice danych w ten sposób:
var xx = Array(
'kod_pocztowy' => 'miejscowości'
);
itd.

a potem porównywać.

Jeśli chodzi o bzdurne znaki to istnieje funkcja w JS sprawdzajaca czy dany ciąg istnieje w danym stringu, lub użyć wyrażeń regularnych.
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.