Űrlapkezelés PHP-vel 3. - űrlapkezelés és -feldolgozás

Űrlapkezelés, -feldolgozás

A form függvények használatával gyorsan, átlátható programkód mellett tudunk megjeleníteni űrlapot.

Ebben a cikkben továbblépünk és megmutatom, hogyan lehet az űrlap adatainak feldolgozását megvalósítani. A cél továbbra is az, hogy átlátható kódunk legyen és gyorsan tudjunk programozni.

A legtöbb esetben egyszerűen megvalósul, pl. megadták-e, a hossza megfelelő-e vagy illeszkedik-e valamilyen maszkra.

De hogyan tudassuk a felhasználóval, ha hibázik?

Ennek gyakori példája, ha az ellenőrzéskor jelenik meg a hibaüzenet, valahogy így:

if ( $nev == "" ) {
  echo "<br />HIBA! Add meg a neved!<br />";
} else if ( $telefonszam == "" ) {
  echo "<br />HIBA! Add meg a telefonszámodat!<br />";
} else {
  // rendben vannak az adatok
}

Másik verzióban már használnak változót, de egyszerre csak egy hibaüzenet jelenik meg:

$hiba = "";
if ( $nev == "" )
  $hiba = "<br />HIBA! Add meg a neved!<br />";
if ( $telefonszam == "" )
  $hiba = "<br />HIBA! Add meg a telefonszámodat!<br />";

És ahol szükséges a megjelenítés, oda:

if ( $hiba != "" )
  echo $hiba;

Egyszerű, működik, mégis érdemes egyszerre a felhasználónak a nyakába zúdítani az összes hibát, erre nem kell más, csak egy tömb:

$hiba = array();
if ( $nev == "" )
  $hiba[] = "<br />HIBA! Add meg a neved!<br />";
if ( $telefonszam == "" )
  $hiba[] = "<br />HIBA! Add meg a telefonszámodat!<br />";

És ahol szükséges a megjelenítés, oda:

if ( count($hiba) >0 )
  echo implode("",$hiba);

Trükközhetünk a html formázással, ha nem a tömbbe pakoljuk a html kódot, hanem csak a kiírásnál formázzuk:

$hiba = array();
if ( $nev == "" )
  $hiba[] = "HIBA! Add meg a neved!";
if ( $telefonszam == "" )
  $hiba[] = "HIBA! Add meg a telefonszámodat!";

if ( count($hiba) >0 ) {
  echo "<br />Hibák:";
  echo "<ul><li>".implode("<li>",$hiba)."</ul>";
  echo "<br />";
}

Ha túl sok feltételt kell vizsgálni, akkor pedig csoportosítsuk aszerint, hogy milyen adat fontos. Például, ha van egy captchánk, akkor azt csak akkor érdemes vizsgálni, ha a többi ellenőrzésnél hiba nélkül jutott túl az ellenőrző.