ďťż

[php] sprawdzanie formularzy !!! wyswietla sie komunikat ale skrypt wykonuje sie dalej!

       

Podstrony


telcocafe

zrobiłem sobie taką strone w php do rejestracji:

<script language="javascript" type="text/javascript"> function submitbutton() { var form = document.register; var r = new RegExp("[^A-Za-z0-9]", "i"); // do field validation if (form.name.value == "") { alert( "Proszę podać imię." ); } else if (form.nick.value == "") { alert( "Proszę podać login." ); } else if (r.exec(form.nick.value) || form.nick.value.length < 3) { alert( "Proszę poprawnie podać Login:. Bez spacji, więcej niż 2 znaków zawieraj±cych się w 0-9, a-z, A-Z" ); } else if (form.email.value == "" ) { alert( "Proszę podać poprawny adres e-mail." ); } else if (form.pass.value.length < 6) { alert( "Proszę podać poprawne hasło. Bez spacji, więcej niż 6 znaków zawieraj±cych się w 0-9, a-z, A-Z" ); } else if (form.pass2.value == "") { alert( "Proszę powtórzyć hasło." ); } else if ((form.pass.value != "") && (form.pass2.value != form.pass2.value)){ alert( "Hasło i jego powtórzenie s± różne, spróbuj ponownie." ); } else if (r.exec(form.pass.value)) { alert( "Proszę poprawnie podać Hasło:. Bez spacji, więcej niż 6 znaków zawieraj±cych się w 0-9, a-z, A-Z" ); } } </script> <? echo '<center>'; echo 'Rejestracja nowego użytkownika'; echo '<br><br>'; echo ("<form name=\"register\" method=\"post\" action=\"register.php\">"); print("Imie:<input name=\"name\" type=\"text\">"); echo '<br>'; print("Login: <input name=\"nick\" type=\"text\">"); echo '<br>'; print("Hasło: <input name=\"pass\" type=\"password\">"); echo '<br>'; print("Hasło (powtórz): <input name=\"pass2\" type=\"password\">"); echo '<br>'; print("Email: <input name=\"email\" type=\"text\">"); echo '<br>'; print("<input type=\"submit\" value=\"Wyślij\" onclick=\"submitbutton()\">"); echo '&nbsp;'; print("<input type=\"reset\" value=\"Wyczyść\">"); ?>

test: pokazuje mi sie przykladowo okienko "Proszę podać imię" ale jak naciskam Ok to skrypt wykonuje sie dalej tzn odrazu wysyła informacje do register.php a ja chce zeby po nacisnieciu na ok miało sie mozliwosc poprawy formularza
prosze o szybką pomoc ;)



może tak:
<form onsubmit="return submitbutton()" ...
submitbutton() trzeba by przerobić, żeby zwracała true jeśli ok, lub false jeśli nie. Poza tym sprawdzanie w JS jest bez sensu i nie daje prawie żadnego zabezpieczenia :)


może tak:
<form onsubmit="return submitbutton()" ...
submitbutton() trzeba by przerobić, żeby zwracała true jeśli ok, lub false jeśli nie. Poza tym sprawdzanie w JS jest bez sensu i nie daje prawie żadnego zabezpieczenia :)


hmmm wkleiłem to ale teraz pojawia mi sie tak: Prosze podac imie -> ok -> prosze podac imie -> ok -> wykonuje sie skrypt
:/

albo moze przerobisz mi cały skrypt zeby sprawdzał poprawność danych w php:

registerform:
<script language="javascript" type="text/javascript"> function submitbutton() { var form = document.register; var r = new RegExp("[^A-Za-z0-9]", "i"); // do field validation if (form.name.value == "") { alert( "Proszę podać imię." ); } else if (form.nick.value == "") { alert( "Proszę podać login." ); } else if (r.exec(form.nick.value) || form.nick.value.length < 3) { alert( "Proszę poprawnie podać Login:. Bez spacji, więcej niż 2 znaków zawieraj±cych się w 0-9, a-z, A-Z" ); } else if (form.email.value == "" ) { alert( "Proszę podać poprawny adres e-mail." ); } else if (form.pass.value.length < 6) { alert( "Proszę podać poprawne hasło. Bez spacji, więcej niż 6 znaków zawieraj±cych się w 0-9, a-z, A-Z" ); } else if (form.pass2.value == "") { alert( "Proszę powtórzyć hasło." ); } else if ((form.pass.value != "") && (form.pass2.value != form.pass2.value)){ alert( "Hasło i jego powtórzenie s± różne, spróbuj ponownie." ); } else if (r.exec(form.pass.value)) { alert( "Proszę poprawnie podać Hasło:. Bez spacji, więcej niż 6 znaków zawieraj±cych się w 0-9, a-z, A-Z" ); } } </script> <? echo '<center>'; echo 'Rejestracja nowego użytkownika'; echo '<br><br>'; echo ("<form name=\"register\" onsubmit=\"return submitbutton()\" method=\"post\" action=\"register.php\">"); print("Imie:<input name=\"name\" type=\"text\">"); echo '<br>'; print("Login: <input name=\"nick\" type=\"text\">"); echo '<br>'; print("Hasło: <input name=\"pass\" type=\"password\">"); echo '<br>'; print("Hasło (powtórz): <input name=\"pass2\" type=\"password\">"); echo '<br>'; print("Email: <input name=\"email\" type=\"text\">"); echo '<br>'; print("<input type=\"submit\" value=\"Wyślij\" onclick=\"submitbutton()\">"); echo '&nbsp;'; print("<input type=\"reset\" value=\"Wyczyść\">"); ?>

register.php
<?php $imie = $_POST['name']; $nick = $_POST['nick']; $pass = $_POST['pass']; $pass2 = $_POST['pass2']; $email = $_POST['email']; $admin = 0; if ($pass == $pass2) { require 'config_db.php'; $result = mysql_query('INSERT INTO `auth` ( `imie` , `nick` , `pass` , `email` , `admin` ) ' . ' VALUES ( \'' . $imie . '\', \'' . $nick . '\', \'' . $pass . '\', \'' . $email . '\', \'' . $admin . '\');' . ' ') or die("Problem z baza danych - użytkownik nie został dodany: " . mysql_error()); echo '<HTML><BODY>'; echo '<CENTER>'; if ($result == TRUE) { echo 'Dodano nowego użytkownika<BR>'; } print("<a href=\"index.php\">Powrót</a>"); echo '</CENTER>'; echo '</BODY></HTML>'; } else { echo "Podane hasła są różne!"; } ?>
Użytkownik PiKey edytował ten post 16 wrzesień 2006, 10:51
Mówiełem, że dorobic zwracanie true/false do funkcji.

p.s. Takie długie kody źródłowe wklejaj w CODEBOX, bo mi sie kółko od myszki zjedzie ;)
Użytkownik .:dR@kE:. edytował ten post 16 wrzesień 2006, 10:55



Mówiełem, że dorobic zwracanie true/false do funkcji.

p.s. Takie długie kody źródłowe wklejaj w CODEBOX, bo mi sie kółko od myszki zjedzie ;)


w takim razie wez to wklej mi do kodu bo nie moge sie polapac ;)


w takim razie wez to wklej mi do kodu bo nie moge sie polapac ;)
if (form.name.value == "") { alert( "Proszę podać imię." ); return false } ... else return true;


w takim razie wez to wklej mi do kodu bo nie moge sie polapac ;)
Dam ci mój gotowy kodzik
[b]w hedad [/b] <script language="javascript" type="text/javascript"> <!-- function testuj(f) { // pola text if (f.imie.value.length<1) { alert("Podaj swoje imie lub nick"); return false; } if (f.email.value.length<1) { alert("Podaj twój adres email"); return false; } //textarea if (f.aa.value.length<1) { alert("Napisz swoją opinię"); return false; } return true; } // --> </script> [b]A tu przykladowy formularz[/b] <form action="jakis.php" method="post" onsubmit="return testuj(this)";> <p><b>Podaj swój nick lub imie</b></p> <input name="imie"> <p><b>Podaj swój adres email</b></p> <input name="email"> <p><b>Twoja Opinia</b></p> <textarea name="aa" ROWS="10" cols="50"></textarea><br><br> <input type="submit" name="wyslij" value="Wyślij"><br><br> </form>


Dam ci mój gotowy kodzik

Pfff... ale kodzik... według niego poprawny email to wpisanie jakiegokolwiek jednego znaku.

Obadaj też #11 i #22: http://forum.ks-eksp...showtopic=83272

tak będzie dobrze. teraz wszystko zadziała. zakładjąc oczywiście że ktoś ma włączoną obsługę skryptów ;)

<script language="javascript" type="text/javascript"> function submitbutton() { var form = document.register; var r = new RegExp("[^A-Za-z0-9]", "i"); if (form.name.value == "") { alert( "Proszę podać imię." ); return false; } else if (form.nick.value == "") { alert( "Proszę podać login." ); return false; } else if (r.exec(form.nick.value) || form.nick.value.length < 3) { alert( "Proszę poprawnie podać Login:. Bez spacji, więcej niż 2 znaków zawieraj&plusmn;cych się w 0-9, a-z, A-Z" ); return false; } else if (form.email.value == "" ) { alert( "Proszę podać poprawny adres e-mail." ); return false; } else if (form.pass.value.length < 6) { alert( "Proszę podać poprawne hasło. Bez spacji, więcej niż 6 znaków zawieraj&plusmn;cych się w 0-9, a-z, A-Z" ); return false; } else if (form.pass2.value == "") { alert( "Proszę powtórzyć hasło." ); return false; } else if ((form.pass.value != "") && (form.pass2.value != form.pass2.value)){ alert( "Hasło i jego powtórzenie s&plusmn; różne, spróbuj ponownie." ); return false; } else if (r.exec(form.pass.value)) { alert( "Proszę poprawnie podać Hasło:. Bez spacji, więcej niż 6 znaków zawieraj&plusmn;cych się w 0-9, a-z, A-Z" ); return false; } register.submit(); } </script> <? echo '<center>'; echo 'Rejestracja nowego użytkownika'; echo '<br><br>'; echo ("<form name=\"register\" method=\"post\" action=\"register.php\">"); ... echo '<br>'; print("<input type=\"button\" value=\"Wyślij\" onclick=\"submitbutton()\">");


Pfff... ale kodzik... według niego poprawny email to wpisanie jakiegokolwiek jednego znaku.
Słusznie zauważyłeś. Już się poprawiam (wezmę coś z tego forum)
[b]w head[/b] <script language="javascript" type="text/javascript"> <!-- function testuj(f) { // pola text if (f.email.value.length<1) { alert("Podaj twój adres email"); return false; } if (f.temat.value.length<1) { alert("Podaj temat listu"); return false; } //textarea if (f.tresc.value.length<1) { alert("Napisz swoją opinię"); return false; } // test poprawnosci emaila wyr_reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\ .\w{2,3})+$/; if (wyr_reg.test(f.email.value)); else { alert("Błędnie wpisałeś email"); return false; }; return true; } // --> </script> [b]Przykladowy formularz[/b] <form action="poczta.php" method="post" onsubmit="return testuj(this)";> <p><b>Twój adres Email</b></p> <input name="email"><br> <p><b>Temat Listu</b></p> <input name="temat"><br> <p><b>Treść</b></p> <textarea name="tresc" ROWS="10" cols="50"></textarea><br><br> <input type="SUBMIT" value="Wyślij"> </form>

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.