ugrás a tartalomhoz

php form

olehid · 2012. Jún. 9. (Szo), 20.49

else{
	$ures_nev = empty($_POST["nev"];
	$ures_email = empty($_POST["email"]);
	$ures_tszam = empty($_POST["tszam"]);
		if ($ures_nev  || $ures_email  || $ures_tszam ) 
				{
					if($ures_nev == TRUE) echo "Név mező üres";
				}
    
	       else echo "Minden mező kitöltése kötelező!";
    }
Amikor kiakarom íratni, hogy melyik mező maradt üresen egyszerűen elakadtam, túl sok if-et nem akarok belerakni mert akkor nem fog 100%-osan működni.

Valakinek valami tipp, tapasztalat?
Köszi
 
1

A teljesség igénye nélkül, én

Kubi · 2012. Jún. 10. (V), 01.55
A teljesség igénye nélkül, én az alábbi módon oldanám meg, ha már nem használsz egy framework-öt sem, ami könnyítené a dolgodat (kód nincs tesztelve, tuti van benne hiba):

// mezők
$formFields = array(
  'nev' => array(
    'type' => 'text',
    'label' => 'név',
    'required' => true
  ),
  'email' => array(
    'type' => 'text',
    'label' => 'név',
    'required' => true
  ),
  'tszam' => array(
    'type' => 'text',
    'label' => 'név',
    'required' => true
  ) // tb szám?
);


// default üres stringel feltöltjük a form értékeit
$formValues = array_fill_keys(array_keys($formFields), '');

$formErrors = array();

// post adatok kiolvasása, hiba ellenörzés
// $isPost = true, ha submit volt, pl $isPost = (isset($_POST['action] && $_POST['action'] == 'edit');
if ($isPost)
{
  foreach($formFields as $key => $options)
  {
    $formValues[$key] = isset($_POST[$key]) ? $_POST[$key] : '';

    if ($options['required'])
    {
      // több hiba lehetőség esetén old meg úgy, hogy tömb legyen a hiba értéke
      $formErrors[$key] = 'Mező kitöltése kötelező';
    }
  }
}

// form megjelenítése, hiba üzenetek a megfelelő form input mező mellett
// jelennek meg
foreach($formFields as $key => $options)
{
  echo "<div>";
  if (isset($formErrors[$key])
  {
    echo "<p>".$formErrors[$key]."</p>";
  }
  echo "<label for="{$key}">{$options['label']}</label>
  <input type='{$options['type']}' name='{$key}' value="{$formValues[$key]}" /> <br />";
  echo "</div>";

}

2

Respect

olehid · 2012. Jún. 10. (V), 16.05
Minden elismerésem a tiéd :D