Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Kontrola Poprawnosci Danych Formularza - adres email
Forum PHP.pl > Forum > Przedszkole
Mlody_Mlody
Witam, na wstępie zaznaczam, że dopiero zaczynam cokolwiek pisać w php. Mam następujący problem, napisałem formularz, który zawiera kilka pól wymaganych jak i niewymaganych, które sprawdzam na kolejnej stronie. Wszystko działa dobrze, jeżeli chociaż jedno z wymaganych pól nie zostanie wypełnione przerywa wysyłanie formularza i każę uzupełnić brakujące pole, pola. Problem zaczyna się dopiero kiedy sprawdza poprawność adresu email. Jeżeli nic nie zostanie wprowadzone w polu „mail” przerywa wysyłanie formularza i prosi o uzupełnienie brakującego pola, ale jeżeli wpisze w polu mail na przykład „abcd” to pomimo iż wyskakuje powiadomienie o złym adresie email to formularz i tak zostaje wysłany. Bardzo proszę o pomoc, bo nie mam pojęcia jak sobie z tym poradzić.

inex.html
  1. <table width="70%" border="0">
  2. <tr>
  3. <td colspan="2">Dane oznaczone (*) musza byc wypelnione.</td>
  4. </tr>
  5. <tr>
  6. <td>
  7. <form action="sprawdz.php" method="post">
  8. </td>
  9. <td><input type="text" name="imie" class="textbox" maxlength="10"></td>
  10. </tr>
  11. <tr>
  12. <td>(*)Nick:</td>
  13. <td><input type="text" name="nick" class="textbox" maxlength="20"></td>
  14. </tr>
  15. <tr>
  16. <td>(*)Miejscowosc:</td>
  17. <td><input type="text" name="skad" class="textbox" maxlength="25"></td>
  18. </tr>
  19. <tr>
  20. <td>(*)Adres e-mail:</td>
  21. <td><input type="text" name="email" class="textbox" maxlength="30"></td>
  22. </tr>
  23. <tr>
  24. <td>(*)Plec:</td>
  25. <td>
  26. <input type="radio" name="plec" value="K" class="textbox"> K<br />
  27. <input type="radio" name="plec" value="M" class="textbox"> M</td>
  28. </tr>
  29. <tr>
  30. <td>Inny kontakt:</td>
  31. <td><input type="text" name="inny_kontak" class="textbox" maxlength="30"></td>
  32. </tr>
  33. <tr>
  34. <td>(*)Data urodzenia:</td>
  35. <td><input type="text" name="data_urodzenia" class="textbox" maxlength="10"></td>
  36. </tr>
  37. <tr>
  38. </tr>
  39. <tr>
  40. <td align="right"><input type="reset" value="Wyczysc" class="button"></td>
  41. <td align="left"><input type="submit" value="Wyslij" class="button"></td>
  42. </tr>


sprawdz.php
  1. <?php
  2. //sprawdza czy cokolwiek zostalo wpisane jezeli nie to tworzy formularz
  3. if (($_POST['imie'] == "") || ($_POST['skad'] == "") || ($_POST['email'] == "") || ($POST['plec'] == "") || ($_POST['data_urodzenia'] == ""))
  4. {
  5. echo '<form name="form" method="post" action="sprawdz.php">';
  6. echo '<tr>';
  7. echo '<td colspan="2" align="center"><b>Uzupelnij brakujace pola</b></td>';
  8. echo '</tr>';
  9. }
  10. if ($_POST['imie'] == "")
  11. {
  12. echo '<tr>';
  13. echo '<td>(*)Imie:</td><td><input type="text" name="imie" class="textbox" maxlength="10"></td></tr>';
  14. }
  15. else 
  16. {
  17. echo '<tr><td colspan="2"><input type="hidden" name="imie" class="textbox" maxlenght="10" value="'.$_POST['imie'].'"></td></tr>';
  18. }
  19. if ($_POST['skad'] == "")
  20. {
  21. echo '<tr>';
  22. echo '<td>(*)Miejscowosc:</td><td><input type="text" class="textbox" name="skad" maxlength="25"></td></tr>';
  23. }
  24. else
  25. {
  26. echo '<tr><td colspan="2"><input type="hidden" name="skad" class="textbox" maxlenght="25" value="'.$_POST['skad'].'"></td></tr>';
  27. }
  28. // sprawdza poprawnosc adresu email
  29. $email = $_POST['email'];
  30. if (!eregi("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,6})$", $email))
  31. {
  32. echo '<tr>';
  33. echo '<td>Zly adres E-mail!<br /> (*)Adres e-mail:</td><td><input type="text" name="email" class="textbox" maxlength="30"></td></tr>';
  34. }
  35. else
  36. {
  37. echo '<tr>';
  38. echo '<td colspan="2"><input type="hidden" name="email" class="textbox" maxlenght="30" value="'.$_POST['email'].'"></td></tr>';
  39. }
  40. if ($_POST['plec'] == "")
  41. {
  42. echo '<tr>';
  43. echo '<td>(*)Plec:</td><td><input type="radio" name="plec" value="K" class="textbox"> K<br />
  44. <input type="radio" name="plec" value="M" class="textbox"> M</td></tr>';
  45. }
  46. else
  47. {
  48. echo '<tr><td colspan="2"><input type="hidden" name="plec" class="textbox" maxlenght="30" value="'.$_POST['plec'].'"></td></tr>';
  49. }
  50. echo '<tr><td colspan="2"><input type="hidden" name="inny_kontakt" class="textbox" maxlenght="30" value="'.$_POST['inny_kontakt'].'"></td><tr>';
  51. if ($_POST['data_urodzenia'] == "")
  52. {
  53. echo '<tr>';
  54. echo '<td>(*)Data urodzenia:</td><td><input type="text" class="textbox" name="data_urodzenia" maxlength="10"></td></tr>';
  55. }
  56. else
  57. {
  58. echo '<tr><td colspan="2"><input type="hidden" name="data_urodzenia" class="textbox" maxlenght="30" value="'.$_POST['data_urodzenia'].'"></td></tr>';
  59. }
  60. }
  61. if (($_POST['imie'] == "") || ($_POST['skad'] == "") || ($_POST['email'] == "") || ($POST['plec'] == "") || ($_POST['data_urodzenia'] == ""))
  62. {
  63. echo "<tr><td align="right"><input type="button" value="Cofnij" onclick="document.location.href=('index.html'); ; return true" class="button" /></td>";
  64. echo '<td align="left"><input type="submit" name="submit" value="Wyslij" class="button"></td>';
  65. } 
  66. else
  67. {
  68. $wiadomosc = 
  69. "Imie: ".$_POST['imie']."
  70. Miejscowosc: ".$_POST['skad']."
  71. Email: ".$_POST['email'].
  72. Plec: ".$_POST['plec']."
  73. Inny kontakt: ".$_POST['inny_kontak'].
  74. Data urodzenia: ".$_POST['data_urodzenia']." ";
  75. $header .= "Content-type: text/html; charset=iso-8859-2 rn";
  76. $header = "Tytuł";
  77. mail ("moj_adres@email.pl", "Formularz", $wiadomosc, $header);
  78. echo "Tekst ".$_POST['imie']." tekst";
  79. } 
  80. ?>
Gość
Skoro nie przerywasz działania skryptu, to nic dziwnego.
Fipaj
google: javascript form validator smile.gif

http://nookie.pl coś takiego napisał (bardzo fajny skrypcik), ale teraz przeorganizował stronę. radzę się z nim zmejlować.

a, i osobiście polecam Zend Framework i pakiet InputFilter. smile.gif http://framework.zend.com - sprawdź dokumentację, to pozwoli skrócić twój skrypt do ok. 20 linijek...
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.