Frage zum Formular

Eraser

Grünschnabel
Hi,
in Sache PHP bin ich noch nicht sehr erfahren. Ich hab mir ein einfaches Formular gebastelt, das über PHP verschickt wird, und die Felder nach Eingabe überprüft werden. Hier ist mein Skript:

PHP:
<?php

$mailbody ="Von: $name\n Email-Adresse: $email\n Betreff: $betreff\n Nachricht: $nachricht\n";

mail ("info@haraldw.de", "Formular_HTMLVersion", $mailbody);

if (strlen($name)<1);
	echo "Bitte geben Sie einen Namen an";

if (strlen($betreff)<1);
	echo "Bitte geben Sie einen Betreff an";

if (strlen($nachricht)<1);
	echo "Bitte geben Sie eine Nachricht an";

if (strstr($email,"@") && strstr($email, ".")){
	}else{
		echo "Bitte geben Sie eine korrekte Email-Adresse an";
	}

?>

In meinem HTML-Dokument hab ich Textfelder mit Namen "email, betreff, name, und nachricht"

So weit so gut. Der Inhalt wird abgeschickt und kommt an. Die Überprüfung geht auch so weit. Das Problem jedoch ist. Das Skript erkennt, wenn an der Eingabe etwas nicht simmt, und gibt das aus, aber die Email wird trotzdem abgeschickt. Was muss ich ins Skript einbauen, dass die Email nicht abgeschickt wird, wenn was an der Eingabe nicht stimmt???
 
Versuchs mal so:

PHP:
<?php

$mailbody ="Von: $name\n Email-Adresse: $email\n Betreff: $betreff\n Nachricht: $nachricht\n";

if (strlen($name)<1)
	echo "Bitte geben Sie einen Namen an";

elseif (strlen($betreff)<1)
	echo "Bitte geben Sie einen Betreff an";

elseif (strlen($nachricht)<1)
	echo "Bitte geben Sie eine Nachricht an";

elseif (strstr($email,"@") && strstr($email, "."))
	echo "Bitte geben Sie eine korrekte Email-Adresse an";
	
else 
mail ("info@haraldw.de", "Formular_HTMLVersion", $mailbody);


?>
 
Meinst du "ifelse" oder "elseif"??? Von ifelse hab ich noch nichts gehört...

Zu elseif:

Es wird zuerst die if-Bedingung geprüft, trifft diese nicht zu, dann wird die nächste elseif-Bedingung geprüft und dann die nächste bis eine zutrifft, trifft keine der Bedingungen zu wird der else-Befehl ausgeführt.
 
hallo, ich bins nochmal.
Hat doch nicht so richtig geklappt und darauf hin hab ich mein Skript ein bisschen umgestellt. Is aber wieder ein Fehler drin :-). ich Vermute es liegt an der If -Bedienung, die die Mail-Funktion umschließt. Hier das Skript:
PHP:
<?php

$mailbody ="Von: $name\n Email-Adresse: $email\n Betreff: $betreff\n Nachricht: $nachricht\n";

$check=0;

if (strlen($name)<1)
    echo "Kein Name";
    $check++;

if (strlen($betreff)<1)
    echo "Kein Betreff";
    $check++;

if (strlen($nachricht)<1)
    echo "Keine Nachricht";
    $check++;

if (strstr($email,"@") && strstr($email,".")){
    }else{
    echo "Falsche Email";
    $check++;
    }

if ($check=0)
    mail ("info@haraldw.de", "Formular_HTMLVersion", $mailbody);

?>

Kann mir jemand helfen?
 
<?php

$mailbody ="Von: $name\n Email-Adresse: $email\n Betreff: $betreff\n Nachricht: $nachricht\n";

$check=0;

if (strlen($name)<1){
echo "Kein Name";
$check++;}

if (strlen($betreff)<1){
echo "Kein Betreff";
$check++;}

if (strlen($nachricht)<1){
echo "Keine Nachricht";
$check++;}

if (strstr($email,"@") && strstr($email,".")){
}else{
echo "Falsche Email";
$check++;
}

if ($check=0)
mail ("info@haraldw.de", "Formular_HTMLVersion", $mailbody);

?>
 
jo, das mit den klammern hab ich auch schon bemerkt. ging aber nicht ich hab den ursprünglichen fehler gefunden.
der letzte plock muss lauten
PHP:
if ($check>0){  //Wenn check über 0 ist passiert nix
    }else{
    mail (...)  //ansonsten mailfunktion
    }

Jetzt gehts damit is das Thema abgeschlossen
 
jetzt hab ich noch ne frage (eieiei ich muss mich mal entscheiden) :-)

Also das Formular geht jetzt. Dumm ist nur, wenn ich auf senden drück öffnet sich die php datei und ich hab eine leere Seite. Was muss ich ins Skript einbauen, damit gleich eine automatische Weiterleitung zur vorherigen Seite stattfindet?
 
Da muss das so aussehen:

PHP:
if ($check>0){  //Wenn check über 0 ist passiert nix
    }
else{
    mail (...);  //ansonsten mailfunktion
    header("Location: neueseite/");
}
 
Zurück