PHP Eingabeüberprüfung + Mailversand

PHlL

Grünschnabel
Habe eine kleine PHP-Seite gebaut in der ich einige Testfelder habe und per Buttondruck überprüfe ob die Eingaben meinen Vorgaben entsprechen (im Namen keine Zahlen, korrektes e-mail Format, etc)

Wenn die Eingaben alle korrekt sind soll er über einen Button diese per Mail verschicken, sind sie nicht korrekt soll er dies auf der Seite anzeigen und keine Mail verschicken. Alles über den gleichen Button.

Wie man das mit der Überprüfung auf Buttonklick macht weiß ich, allerdings weiß ich nicht wie ich das mit dem Mail versenden richtig umsetze.


Auszug aus meinem Quellcode

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<?php
//Eingabe überprüfen und Fehler in $error ablegen
$error = array();

if($_SERVER["REQUEST_METHOD"]=="POST")
{
//PRÜFUNG der Eingabe
}

//Formular ausgeben
if($_SERVER["REQUEST_METHOD"]!="POST" || count($error) > 0)
{
?>
<!--TEXTFELDER-->
<input type="submit" name="send" value="abschicken" />
</form>
<?php
}
?>
 
Mach das im „PRÜFUNG der Eingabe“-Abschnitt. Prüfe dort zuerst die Validität der Daten und wenn es keinen Fehler gab, verschicke die E-Mail. Andernfalls gib die Fehler aus.
Falls du einen Zwischenschritt haben möchtest, in dem die Eingaben zuerst ausgegeben und noch einmal bestätigt werden sollen, mach dies über einen zusätzliche Flag (ein zusätzliches, verstecktes Formularelement).
 
PHP:
if($_SERVER["REQUEST_METHOD"]=="POST")
{
//PRÜFUNG der Eingabe
   if($pruefung_der_eingabe_bestanden){
      mail($absender,$betreff,$nachricht,$empfänger);
   }
   else{
      // Fehlerhafte eingaben
   }
}
 
PHP:
if( $_SERVER["REQUEST_METHOD"] == "POST" ) {

	//PRÜFUNG der Eingabe
	if( /* … */ ) {

		// Gültige Eingaben
		if( isset($_POST['confirm']) ) {
			// E-Mail versenden
		} else {
			// Daten zur Bestätigung ausgeben
			// zusätzlich: <input type="hidden" name="confirm" value="1">
		}

	} else {

		// Fehlerhafte Eingaben

	}

}
 
HI, die anderen haben ja eigentlich schon alles dazu geschrieben. Ich wollte trotzdem noch mal kurz schreiben wir das bei mir aussieht mit der Mail.

PHP:
// ################# MAIL ####################

$mail = "deine@mail.de";
$sender = "Sendername";
$empfaenger = $mail;
$betreff = "Dein Betreff";
$text = <<< EOD

Dieses ist eine automatisch generierte mail...


Solltest du diese email ohne Anforderrung bekommen haben, Lösche sie bitte.
Sollte sie öfters an dich geschickt werden, melde es uns bitte.

EOD;

  mail($empfaenger, $betreff, $text,
       "From: $sender <$sendermail>");


Ist nur ein Auszug, es steht noch ein wenig mehr drinne ;)
 
Danke ;)

Habe es nun eingebaut, aber kann ich lokal irgendwie testen ob es funktioniert. Weil nen mailserver habe ich nicht.
 
Zuletzt bearbeitet:
dann gehts wohl nicht musst halt aufm server testen

schau dir übrigens nochmal die mail() funktion auf php.net an da gibts noch viele hilfen und beispiele zu der funktion.
 
Zurück