Formular

IceBaby

Mitglied
PHP:
if ($_GET['action'] == "senden") {
    if (($_POST['Name'] == "") OR ($_POST['E-mail'] == "") OR        ($_POST['Betreff'] == "") OR ($_POST['Nachricht'] == "")) {
    echo "<script language='JavaScript'>alert('Fülle alle Felder aus!');</script>\n";
}
 

           $Mitteilung = "Absender: ".$_POST['Name']."\n".
                                "E-mail: ".$_POST['E-mail']."\n\n".
                                 $_POST['Nachricht'];
            mail ("icebaby@inode.at", $_POST['Betreff'], $Mitteilung, 
                    "From:".$_POST['Name']." <".$_POST['E-mail'].">");
            echo "<p align='center'>Deine E-mail wurde erfolgreich versandt!</p>";
            $Gesendet = 1;
      }
 
 
 
 
if ($_GET['action'] == "senden") {
    // Verschicke eMail 
   $Gesendet = 1; 
}
if ($Gesendet != 1) {
    // Zeige das Formular an
     echo "<form action='index.php?cat=email_senden' method='POST'>";
echo "<b>Betreff:</b> <input type='text' name='Betreff' size='50'><br>
<b>Name:</b> <input type='text' name='Name' size='50'><br>
<b>E-Mail:</b> <input type='text' name='Mail' size='50'><br>
<textarea name='Nachricht' cols='45' rows='15'></textarea><br><br>
<input type='submit' name='Abschicken' value='Abschicken'>";
  
echo "</form>";
}

Das ist der Code meines Formulars. Klappt prima, ich möchte jetzt aber, dass der User alle Felder ausfüllen muss, und wenn er das nicht macht, dass dann eine Fehlermeldung kommt. Wie mache ich das?
 
bist doch fast selber auf die Lösung gekommen ...

PHP:
if ($_GET['action'] == "senden") {
    $error =  0;

    if (empty($_POST['Name'] )){
      $error = 1;
      $msg = "Bitte Name eintragen!";
    }
    if(empty($_POST['E-mail'])) {
      $error = 1;
      $msg .= "Bitte Email eintragen!";
    }
    if(empty($_POST['Betreff'])) {
      $error = 1;
      $msg .= "Bitte Betreff eintragen!";
    }
    if(empty($_POST['Nachricht'] )){
      $error = 1;
      $msg .= "Bitte Nachricht eintragen!";
    }
    if($error == 0) {
      .
      ... Code für Email senden
      .
    }


   ... und einfach für die Fehlerausgabe ...
   echo $msg;

}


... nicht gerad die schönste Lösung, aber es funktioniert.

Gruß soyo
 
ich versteh jetzt deine Frage irgendwie nicht ganz ... aber warum sollte eine Fehlermedlung ausgegeben werden, wenn nicht alle Felder leer sind?
 
Vllt so
PHP:
<?php
if(isset($_POST['submit'])) {
    $error = ""; // Leere Fehlermeldung
    if(empty($_POST['name'])) $error .= "<li>Sie haben keinen Namen angegeben.</li>"; // Wenn Feld "Name" leer ist, bekommt leere Fehlermeldung den Inhalt
    if(empty($_POST['mail'])) $error .= "<li>Sie haben kein Passwort angegeben.</li>"; // Wenn Feld "Passwort" leer ist, bekommt leere Fehlermeldung den Inhalt
    if(empty($error)) { // Wenn $error immer noch leer ist dann gehen wird weiter mit abschicken

....}
?>

ist nur ein Beispiel...
 
@ven

ja genau sowas hab ich gemeint.
@soyo, weil ich will, dass alle Felder ausgefüllt werden, sonst wird das Formular nicht gesendet und bei mir ist das egal, ich könnte also 100 leere antworten kriegen, :)
 
Code:
if (($_POST == "") OR ($_POST == "") OR        ($_POST
Hier wurde alles mit OR gemacht, aber es sollte auch ohne dem Funktionieren, nur habe ich keine Ahnung wie das noch ausschauen könnte, vl weiß es ja jemand zufällig, sonst ist es auch egal...
 
Zurück