Pflichtfelder in einem PHP Formular

calvinklein

Grünschnabel
Hallo allerseits,
habe ein Formular in PHP (sendform.php) programmiert, die ohne Pflichtfeldabfrage einwandfrei funktioniert. Nun wollte ich eine IF-Abfrage einbauen, die mir prüfen soll, ob alle Pflichtfelder ausgefüllt sind oder nicht.
Da ich geringe Kenntnisse in PHP hab und mich noch nicht so gut auskenne, habe ich sicherlich einige Fehler eingebaut.
Würde mich freuen, wenn ihr einmal kurz drüber schauen könntet!

<?php

//scriptanfang
$empfaenger = "meinemail@domain.de"; //empfaenger mail addy

//bestimmen der eingabefelder
$field1 = $_POST["vorname"];
$field2 = $_POST["name"];
$field3 = $_POST["strasse"];
$field4 = $_POST["plz"];
$field5 = $_POST["ort"];
$field6 = $_POST["telefon"];
$field7 = $_POST["email"];
$field8 = $_POST["betreff"];
$field9 = $_POST["mitteilung"];

//aussehen der email die an gs gesendet wird
$send = '
Von: '.$_POST["vorname"].' '.$_POST["name"].'
Email: '.$_POST["email"].'

Betreff: '.$_POST["betreff"].'

Straße: '.$_POST["strasse"].'
PLZ: '.$_POST["plz"].'
Ort: '.$_POST["ort"].'

Telefon: '.$_POST["telefon"].'

Mitteilung '.$_POST["mitteilung"].'
';

//pflichtfelder
if ($field1=="" && $field2=="" && field3=="" && field4=="" && field5=="" && field6=="" && field7=="" && field8=="" && field9=="")
{
echo "Bitte füllen Sie alle Pflichtfelder aus!";
}

//die sendefunktion
elseif (mail($empfaenger, $field8, $send,"From: ".$field1." ".$field2." <".$email.">\r\n" ))
{
echo "Ihre Nachricht wurde erfolgreich an uns weitergeleitet.<br> <a href="index.html" style="text-decoration:none">Hier</a> gelangen Sie wieder zur Startseite.";
}
//ende
?>
 
In einem Teil hast du ein paar Syntax Fehler, hab das mal korrigiert.
PHP:
if($field1=="" || $field2=="" || $field3=="" || $field4=="" || $field5=="" || $field6=="" || $field7=="" || $field8=="" || $field9=="")
{
echo "Bitte füllen Sie alle Pflichtfelder aus!";
}

//die sendefunktion
elseif (mail($empfaenger, $field8, $send,"From: ".$field1." ".$field2." <".$email.">\r\n" ))
{
echo "Ihre Nachricht wurde erfolgreich an uns weitergeleitet.<br> <a href=\"index.html\" style=\"text-decoration:none\">Hier</a> gelangen Sie wieder zur Startseite.";
}
 
Super vielen Dank, das war auch schon der Fehler.
Kann man die Meldung "Bitte alle Pflichtfelder ausfüllen" auch im selben Fenster erscheinen lassen? Diese erfolgt nämlich bei mir erst im neuen Fenster, wenn ich auf Abschicken klicke --> sieht etwas unschön aus.
 
Du kannst den Quellcode auf die selbe Seite bringen, dann mit einer if-Abfrage den neuen Bereich "eingrenzen", also dass er nur ausgeführt wird, wenn der Absende-Button gedrückt wurde.

PHP:
if($_POST[buttonname] == "buttonvalue"){
//Prüfen der Eingaben und E-Mails-Versand
}

Dann ist natürlich immer noch das leere Formular auf der Seite. Das kannst du dann zum Beispiel in den else-Zweig packen oder auch mit einem if umschließen, nur dass du in diesem Fall auf nicht Gleichheit prüfst (!= anstatt ==).
 
Zurück