Formular mit mehreren fehlermeldungen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Formular mit mehreren fehlermeldungen

Beitrag 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?
jonemo
Mitglied
Beiträge: 69
Registriert: 07.04.2004 17:18
Wohnort: london
Kontaktdaten:

Beitrag 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]
}
Werbung
Gegen günstige Bezahlung gibt's von mir umfassenden Support und Hilfe bei Programmierung oder Modding. Kontaktaufnahme per PN oder Mail.
atlas mod
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Beitrag 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] 
}
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Antworten

Zurück zu „Coding & Technik“