Seite 1 von 1

Formular mit mehreren fehlermeldungen

Verfasst: 05.09.2005 10:02
von witzigerkiller
Ich habe meine formulare immer so gestaltet:

Code: Alles auswählen

<?PHP
 if (isset($_POST['Nachricht'])) {
  if (empty($_POST['Mail']) OR empty($_POST['Betreff']) 
      OR empty($_POST['Anliegen'])) {
   echo "<font color='red'><h4>Bitte alle Felder ausfüllen!</h4></font>";
                                    }
  else {
   if (!stristr($_POST['Mail'],'@')) {
    echo "<font color='red'><h4>E-Mailadresse muss korreckt sein!<h4></font>";
                                     }
  else {
   if (!stristr($_POST['Mail'],'.')) {
    echo "<font color='red'><h4>E-Mailadresse muss korreckt sein!<h4></font>";
                                     }
  else {
      
       }

?>
<form action="#" method="post">
 <table>
  <tr>
   <td>E-Mail:</td>
   <td><input type="text" name="Mail" size="20" maxlength="40" /></td>
  </tr>
  <tr>
   <td>Betreff:</td>
   <td><input type="text" name="Betreff" size="20" maxlength="40" /></td>
  </tr>
  <tr>
   <td>Anliegen:</td>
   <td><textarea name="Anliegen" rows="6" cols="25"></textarea></td>
  </tr>
  <tr>
   <td><input type="submit" name="Nachricht" value="Senden" /></td>
   <td align="right"><input type="reset" name="Loschen" value="Löschen" /></td>
  </tr>
 </table>
</form>
Aber da kommt immer blos eine fehlermeldung, wwenn alle felder leer sind, oder nur eins. also immer die gleiche fehlermeldung.

Ich möchte jetzt, das wenn ich ein formular von 10 feldern habe, und nur das 2 und das 8 davon ausfülle, das dann z.b. die fehlermeldung kommt: feld 2 ller und feld 8 leer.

Wie muss ich das anstellen?

Verfasst: 05.09.2005 15:54
von jonemo
am bsten vor den ganzen ifs eine variable

Code: Alles auswählen

error = '';
leer (!) erstellen und dann in den if-zweigen der variable was hinzufügen

Code: Alles auswählen

...
elseif (fehler)
 $error .= '<br />noch eine fehlermeldung!';
...
und gegen die verwendung von elseif spricht übrigens gar nix ;)

nachdem du alle fehlerfälle durchgecheckt hast, dann machst du

Code: Alles auswählen

if ($error == '') {
echo $error;
[und alles was sonst im fehlerfall gemacht wird]
}

Verfasst: 06.09.2005 10:15
von StarWolf3000

Code: Alles auswählen

if ($error == '') { 
echo $error; 
[und alles was sonst im fehlerfall gemacht wird] 
}
muss dich leider korrigieren:

Code: Alles auswählen

if ($error != '') { 
echo $error; 
[und alles was sonst im fehlerfall gemacht wird] 
}