ugrás a tartalomhoz

Form adatok ellenőrzése PHP-vel

Anonymous · 2006. Már. 14. (K), 12.01
Sziasztok!

Van egy regisztrációs form-om, amit szeretnék szépen leellenőriztetni, hogy jól töltötte ki a felhasználó.

Pl.:
  1. function check_form($_POST) {  
  2.     $error='';  
  3.     if($_POST['pwd'] == '') {  
  4.         $error .= "A jelszó mező üres!<br />";  
  5.     }  
  6.     if($_POST['pwd_check'] == '') {  
  7.         $error .= "A jelszó ellenőrző mező üres!<br />";  
  8.     }  
  9.     if($_POST['pwd'] != $_POST['pwd_check']){  
  10.         $error .= "A megadott jelszavak különböznek!";  
  11.     }  
  12.     return $error;  
  13. }  
Van erre valami szebb módszer, vagy pedig minden vizsgálathoz if-eket kéne alkalmaznom?

Köszi a választ!
 
1

Szépítés

Anonymous · 2006. Már. 14. (K), 14.41
1. Ha a hibás visszaigazolást berakod egy <ul> be, és a hibák <li>-k.
2. Lehet alkalmazni az if(!($_POST['pwd'])) alakot is.
2

ez teljesen jó

Anonymous · 2006. Már. 14. (K), 14.46
csak én az empty() -t használtam
if (empty($_POST['pwd']) || empty($_POST['pwd_check']))
$error.= "Csak akkor regisztrálhatsz ha kitöltöd az adatokat!";
és egy if-el kevesebb; de nem kell olyan sok mezőt ellenőrizned és ha mindet if ekkel megnézed biztos nem lesz benne hiba
3

Nem látok benne logikát...

-zsolti- · 2006. Már. 14. (K), 15.20
...például a függvény használatot ebben a formában semmi sem indokolja, mivel a $_POST szuperglobális tömb (nem kell a függvénybe bele paraméterezni), másrészt több különböző feladatot is egyben végrehajt, s így ez nem igazán meríti ki a függvény fogalmát. Én inkább úgy csinálnám, hogy minden ellenőrzendő adatra (amik különbözőek) írnék függvényt.
pl:
  1. function checkMailFormat($mail) {  
  2.   // szép regexp ellenőrzés, true-t vagy false-ot ad vissza  
  3. }  
  4. function checkLoginFormat($login) {  
  5.  // szintén  
  6. }  
Ezeket később több helyen is felhasználhatod (login, regisztráció, jelszó újraküldés), ez lenne a függvények lényege. Ahol pedig csak két stringet kell összehasonlítanod, oda nyilván nem kell függvény, csak egy if-ben megvizsgálod. OO nélkül így végezém a form adatok ellenőrzését:
  1. <?php  
  2. // beágyazod az ellenőrző függvényeket  
  3.   
  4. if($_POST['action'] = 'formHasBeenSent') {  
  5.   if(!checkMailFormat($_POST['mail'])) {  
  6.     $error .= 'Hibás mail';  
  7.   }  
  8.   if(!checkLoginFormat($_POST['login'])) {  
  9.     $error .= 'Hibás mail';  
  10.   }  
  11.   if(!isset($_POST['pwd']) || ($_POST['pwd'] != $_POST['pwd_check'])) {  
  12.     $error .= 'Nem egyeznek a jelszók';  
  13.   }  
  14.   ...  
  15.   if(!isset($error) {  
  16.     // nincs hiba, itt történik db-be írás, stb, majd   
  17.     // elirányítás egy másik oldalra (regisztráció megtörtént)  
  18.   }  
  19. }  
  20.   
  21. if(isset($error)) { // ha van hiba, az újratöltődésnél itt írja ki  
  22.   echo $error;  
  23. }  
  24.   
  25. // itt van pl. a form, ha önmagának postol  
  26. ?>