Formularfelder zusammenfassen

Code:
if ( $_POST['password'] == $_POST['password2'] )
{
 // tu was
}
else
{
 // mach was anderes
}
bei email genau das gleiche, nur die anderen Variablen benutzen

nimm mal die Variante, "$password", "$password2", "$email", "$email2" reicht je nach Webserverkonfiguration nicht aus, Stichwort "REGISTER GLOBALS".

Eine genauere Abruchbedingung vor dem Einfügen in die Datenbank wäre auch sinnvoll ^^
 
Wenn ich hier Code poste, erwarte ich natürlich schon, dass man seine eigenen Variablen kennt und dementsprechend auch erkennt, wenn ein Codestück nur Beispielvariablen beinhaltet.

Deshalb solltest du die Variablen die ich geschrieben habe, durch die jeweiligen Gegenstücke aus dem $_POST Array zu ersetzen.
 
So;

PHP:
<?php
 $required_fields = array ('vorname', 'name', 'geburtsdatum_tag', 'geburtsdatum_monat', 'geburtsdatum_jahr', 'geschlecht', 'anschrift', 'plz', 'ort', 'user', 'password', 'password2', 'email', 'email2');

 foreach ($_REQUEST as $key => $value) {
 if (in_array($key, $required_fields) && !empty($value)) {  

echo "Nicht alle Felder ausgefüllt!";



if( $_POST['password'] != $_POST['password2'] ) 
{
  echo "Fehler! Passwort stimmt nich mit Bestätigungsfeld überein";
}
 


if( $_POST['email'] != $_POST['email'] ) 
{
  echo "Fehler! Email stimmt nich mit Bestätigungsfeld überein";
}
  



?>



<?php 
 die;
 }
 }
?>


Jetzt zeigt er mir alle Fehlermeldungen an...
 
PHP:
<?php
 $required_fields = array ('vorname', 'name', 'geburtsdatum_tag', 'geburtsdatum_monat', 'geburtsdatum_jahr', 'geschlecht', 'anschrift', 'plz', 'ort', 'user', 'password', 'password2', 'email', 'email2');

 foreach ($_REQUEST as $key => $value) {
 if (in_array($key, $required_fields) && !empty($value)) {  

echo "Nicht alle Felder ausgefüllt!";



if( $_POST['password'] != $_POST['password2'] ) 
{
  echo "Fehler! Passwort stimmt nich mit Bestätigungsfeld überein";
}
 


if( $_POST['email'] != $_POST['email'] ) 
{
  echo "Fehler! Email stimmt nich mit Bestätigungsfeld überein";
}
  



?>



<?php 
 die;
 }
 }
?>
Ist sehr unperfomant, da du in jedem Durchlauf der [phpf]foreach[/phpf] Schleife das gleiche prüfst.
So wäre es eleganter:

PHP:
<?php
 $required_fields = array ('vorname', 'name', 'geburtsdatum_tag', 'geburtsdatum_monat', 'geburtsdatum_jahr', 'geschlecht', 'anschrift', 'plz', 'ort', 'user', 'password', 'password2', 'email', 'email2');

foreach ($_REQUEST as $key => $value) {
  if (in_array($key, $required_fields) && !empty($value)) {  
    $errors[] = "Nicht alle Felder ausgefüllt!";
  }
}

if( $_POST['password'] != $_POST['password2'] ) 
{
  $errors[] = "Fehler! Passwort stimmt nich mit Bestätigungsfeld überein";
}
if( $_POST['email'] != $_POST['email'] ) 
{
  $errors[] = "Fehler! Email stimmt nich mit Bestätigungsfeld überein";
}
if(!empty($error))
{
  foreach($errors as $error) 
  {
    echo $error."<br/>";
  }
  exit;
} 
?>
Falls eine Fehlermeldung auftritt, wird sie ein dem Array $errors gespeichert.
Danach wird geprüft ob $errors leer ist, falls nein, wird jede Fehlermeldung ausgegeben, [phpf]exit[/phpf] bricht das Skript ab.
 
Zuletzt bearbeitet:
Tut mir leid, hatte eine Klammer vergessen, ist oben korrigiert und hier auch nochmal:

PHP:
<?php
 $required_fields = array ('vorname', 'name', 'geburtsdatum_tag', 'geburtsdatum_monat', 'geburtsdatum_jahr', 'geschlecht', 'anschrift', 'plz', 'ort', 'user', 'password', 'password2', 'email', 'email2');

foreach ($_REQUEST as $key => $value) 
{
  if(in_array($key, $required_fields) && !empty($value)) 
  {  
    $errors[0] = "Nicht alle Felder ausgefüllt!";
  }
}

if( $_POST['password'] != $_POST['password2'] ) 
{
  $errors[] = "Fehler! Passwort stimmt nich mit Bestätigungsfeld überein";
}
if( $_POST['email'] != $_POST['email'] ) 
{
  $errors[] = "Fehler! Email stimmt nich mit Bestätigungsfeld überein";
}
if(!empty($errors))
{
  foreach($errors as $error) 
  {
    echo $error."<br/>";
  }
  exit;
} 
?>
 
Zuletzt bearbeitet:
Sorry, wieder ein kleiner Flüchtigkeitsfehler von mir:

PHP:
<?php
$required_fields = array ('vorname', 'name', 'geburtsdatum_tag', 'geburtsdatum_monat', 'geburtsdatum_jahr', 'geschlecht', 'anschrift', 'plz', 'ort', 'user', 'password', 'password2', 'email', 'email2');

foreach ($_POST as $key => $value) 
{
  if(!in_array($key, $required_fields) || empty($value)) 
  {  
    $errors[0] = "Nicht alle Felder ausgefüllt!";
  }
}

if( $_POST['password'] != $_POST['password2'] ) 
{
  $errors[] = "Fehler! Passwort stimmt nich mit Bestätigungsfeld überein";
}
if( $_POST['email'] != $_POST['email'] ) 
{
  $errors[] = "Fehler! Email stimmt nich mit Bestätigungsfeld überein";
}
if(!empty($errors))
{
  foreach($errors as $error) 
  {
    echo $error."<br/>";
  }
  exit;
}
?>
Es muss natürlich !empty($errors) heißen.
 
Zurück