Problem mit Formular

exhubiranta

Mitglied
Hallo,

hier das Script des Sendmail. Die Fehlermeldungen kommen alle so wie sie gehören. Das Problem ist, dass im Email falsche Angaben ankommen. Wenn ich nämlich Apfel wähle und eine Apfelsorte eingebe, steht im Mail: "Der Mensch mag lieber Birnen". Wenn ich Birne wähle, steht im Email gar nichts.

Irgendein logischer Fehler, aber ich komm' nicht drauf! Könnt ihr mir weiterhelfen? Danke!
Viele Grüße
exi

PHP:
<?

include("config.php");
$erfolg="<FONT SIZE=$sz color=$tc face=$fc><B>Die eMail wurde gesendet !</B></FONT><br><br><br>
		<input type=button value=zurück onClick=history.back()>";
$obstvergess="<FONT SIZE=$sz color=$tc face=$fc><B>Sie haben vergessen, die Obstsorte auszuwählen</B></FONT><br><br><br>
		<input type=button value=zurück onClick=history.back()>";
$emailvergess="<FONT SIZE=$sz color=$tc face=$fc><B>Sie haben vergessen, Ihre Emailadresse mitzuteilen</B></FONT><br><br><br>
		<input type=button value=zurück onClick=history.back()>";
$apfelfehlt="<FONT SIZE=$sz color=$tc face=$fc><B>Sie haben angegeben, dass Sie lieber Äpfel mögen.<br> 
                 Geben Sie bitte noch Ihre Lieblingssorte an. Danke!
              </B></FONT><br><br><br>
		<input type=button value=zurück onClick=history.back()>";

// Prüfen der eMailadressen und Eingaben

if(empty($_POST['email'])){
    echo $emailvergess;
    exit;
} 

if(empty($_POST['obst'])){
    echo $obstvergess;
    exit;
} 

switch($_POST['obst']){ 
    case 'apfel': 
 if(empty($_POST['apfelsorte'])){ 
            echo $apfelfehlt; 
            exit; 
       $nachricht1 = 'Der Mensch mag lieber Äpfel.';       
        }
else { 
       $nachricht2 = 'Der Mensch mag lieber Birnen.'; 
        } 
        break; 
}

// eMail an den Empfanger

mail("$site_email",
"Auswahl Äpfel Birnen",
"Diese eMail wurde mit $site_name gesendet!\r

$nachricht1
$nachricht2

____________________________________________________________",
"From: $email\n");

echo "$erfolg";

?>
 
Es kommt keine Fehlermeldung wegen der Programmierung (parse error oder so). Mit Fehlermeldungen meine ich die Meldungen, die kommen, wenn man vergisst, a) Apfel/Birne auszuwählen b) wenn man vergisst, Apfelsorte auszuwählen, wenn man vorher Apfel ausgewählt hatund c) vergisst, die Emailadresse anzugeben. Diese Fehlermeldungen kommen ohne Fehler und so wie sie gehören. Nur der Text im Email ist total verkehrt....
 
Du hast einen logischen Fehler in folgendem Block:
PHP:
switch($_POST['obst']) {
	case 'apfel':
		if(empty($_POST['apfelsorte'])) {
			echo $apfelfehlt;
			exit;
			$nachricht1 = 'Der Mensch mag lieber Äpfel.';
		} else {
			$nachricht2 = 'Der Mensch mag lieber Birnen.';
		}
		break;
}
Denn sobald eine Apfelsorte angegeben wurde, mag der Mensch lieber Birnen.
 
Ich weiß nicht, was ich falsch mach - jetzt habe ich es umgeschrieben, weil ich dachte, er kommt dem else nicht klar, aber der Mensch mag immer noch Birnen, obwohl Apfel eingegeben.

PHP:
switch($_POST['obst']){ 
    case 'apfel': 
 if(empty($_POST['apfelsorte'])){ 
            echo $apfelfehlt; 
            exit; 
       $nachricht1 = 'Der Mensch mag lieber Äpfel.';       
        }
case 'birne':
$nachricht2 = 'Der Mensch mag lieber Birnen.';
}

Kann mir jemand helfen, es ist sicher nur eine Kleinigkeit...
exi
 
habs gelöst. Wär aber schön, wenn noch ein Fehlermeldung käme (z.B. Sie brauchen keine Apfelsorte einzugeben, da Sie ja lieber Birnen essen), wenn jemand Birne wählt, aber trotzdem eine Apfelsorte reinschreibt. Da habe ich leider keine Ahnung wie man verwirklichen könnte...

PHP:
if(empty($_POST['obst'])){
    echo $obstvergess;
    exit;
} 
switch($_POST['obst']){ 
    case 'apfel': 
        if(empty($_POST['apfelsorte'])){ 
            echo $apfelfehlt; 
            exit; 
      
}
else{ 
            $nachricht1 = 'Der Mensch mag Äpfel.'; 
        } 
        break; 
    case 'birne': 
       $nachricht2 = 'Der Mensch mag Birnen.';
           break; 
        }
 
Zuletzt bearbeitet:
Zurück