Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzanie formularza, Zatrzymanie wysyłania danych z formularza
pl65
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 17.02.2008
Skąd: Hrubieszów

Ostrzeżenie: (0%)
-----


Zrobiłem JavaScript który sprawdza czy dane są wprowdzone prawidłow. Niestety jak wykryje błąd wyświetla okienko po czym jak się kliknie ok wysyła formularz, mimo że ma właśnie ten proces zatrzymać. Spójrzcie i doradźcie co zrobić żeby to zaczeło poprawnie działać.

Kod java script:
  1. <?php
  2. echo'<script Language="JavaScript1.2" src="test.js"></SCRIPT>
  3. <script Language="JavaScript1.2">
  4. function check_valid(form) {
  5. var error = "";
  6. error += verify_tytul(form.tytul.value);
  7. error += verify_tresc(form.tresc.value);
  8. error += verify_autor(form.autor.value);
  9. error += verify_email(form.email.value);
  10. if (error != "") {
  11. alert(error);
  12. return false;
  13. }
  14. if (error == "")
  15. {return false;}
  16. }
  17. </SCRIPT>
  18. '
  19. ?>

W/w dane są oczywiście wyświetlne w sekcji head. W pliku włączonym są funkcje sprawdzające poprawnośc danych. wyglądają one tak:
Kod
function verify_tytul (strng) {
     var error = "";
     if (strng == "")
     {
         error = "Nie wprowadzono tytułu.\n";
     }
     var illegalChars = /\W/; //dozwolone znaki
     if ((strng.length <3) || (strng.length >100)) {
         error = "Tytuł musi mieć od 3 do 100 znaków.\n";
         }
     else if (illegalChars.test(strng)) {
         error = "Tytuł zawiera niedozwolone znaki.\n";
     }
     return error;
}

function verify_tresc (strng) {
     var error = "";
     if (strng == "")
     {
         error = "Nie wprowadzono treści.\n";
     }
     var illegalChars = /\W/; //dozwolone znaki
     if ((strng.length <3) || (strng.length >300)) {
         error = "Treść musi mieć od 3 do 300 znaków.\n";
         }
     else if (illegalChars.test(strng)) {
         error = "Treść zawiera niedozwolone znaki.\n";
     }
     return error;
}

function verify_autor (strng) {
     var error = "";
     if (strng == "")
     {
         error = "Nie wprowadzono nazwy użytkownika.\n";
     }
     var illegalChars = /\W/; //dozwolone znaki
     if ((strng.length <3) || (strng.length >20)) {
         error = "Pole autor musi mieć od 3 do 300 znaków.\n";
         }
     else if (illegalChars.test(strng)) {
         error = "Pole autor zawiera niedozwolone znaki.\n";
         error = "Pole autor zawiera niedozwolone znaki.\n";
     }
     return error;
}

function verify_email (strng) {
     var error = "";
     if (strng == "")
     {
         error = "Nie wprowadzono adresu e-mail.\n";
     }
     var emailFilter=/^.+@+\..{2,3}$/;
     if (!(emailFilter.test(strng))) {
         error = "Proszę wprowadzić prawidłowy e-mail.\n";
         }
     else {
     //sprawdzanie czy e-mail nie ma niedozwolonych znaków
         var illegalChars =/[\(\)\<\>\,\;\:\\\"\[\]]/
         if (strng.match(illegalChars)) {
         error = "Adres e-mail zawiera niedozwolone znaki.\n";
         }
     }
     return error;
     }


Kod formularza:
  1. <?php
  2. echo('<form action="'.$_SERVER["PHP_SELF"].'" method="POST" onSubmit="check_valid(this)">
  3. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  4. <tr valign="middle"> 
  5. <td width="40%"><b>Tytuł: </b></td>
  6. <td width="60%"><input type="text" name="tytul" size="30" value="'.$tytul.'" maxlength="30"></td>
  7. </tr>
  8. <tr valign="middle" > 
  9. <td width="40%"><b>Treść komentarza:</b></td>
  10. <td width="60%">
  11. <textarea name="tresc" cols="38" rows="6" >'.$tresc.'</textarea>
  12. <input type="hidden" name="akcja" value="dodajkom"></td>');
  13. echo"<input type=\"hidden\" name=\"id_news\" value=\"$id_blog\">";
  14. echo('<tr valign="middle"> 
  15. <td width="40%"> <b>Autor: </b></td>
  16. <td width="60%"><input type="text" name="autor" size="15" value="'.$autor.'" maxlength="10"></td>
  17. </tr>
  18. <tr valign="middle" > 
  19. <td width="40%"> e-mail: </td>
  20. <td width="60%"><input type="text" name="email" size="15" value="'.$email.'" maxlength="30"></td>
  21. </tr>
  22.  <tr valign="middle" > 
  23. <td width="40%">
  24. <input type="reset" value="Kasuj">
  25. <input type="submit" value="Wyślij" /></td>
  26. <td width="60"><b>Pogrubione pola są obowiązkowe!</b></td>
  27. </tr>
  28. </table>
  29. </form>');
  30. ?>



Moje błędy wynikają z tego na pewno że nie za dobrze znam ten język.

Ten post edytował pl65 19.03.2008, 11:19:53


--------------------
Przemek :)
lisnet.info
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 04:01