Matze: Fehler in PHP Kontaktformular

Beitrag lesen

Hallo!

//Variablen
    $name    = $_POST["name"];
    $email   = $_POST["email"];
    $msg     = $_POST["msg"];
    $website = $_POST["website"];
    $theme   = $_POST["theme"];
    $subject = $_POST["subject"];
    $message = $_POST["message"];

  
Wozu dieses kopieren der Variablen? Damit verschleierst du im Script effektiv deren Herkunft und verbrauchst unnötig Speicher.  
Benutze stattdessen direkt das Array.  
  
  

> ~~~php
  

>    die;  
> 

Es ist nicht schön sein Script aufgrund einer Fehlermeldung sterben zu lassen. Führe stattdessen Code aus der auf den Fehler reagiert.

echo "In deiner E-Mail Adresse gibt es einen Fehler";

  
Rein technisch gesehen, kannst du das anhand deiner Prüfung nicht wissen. localhost wäre auch eine gültige email-Adresse und enthält weder ein "@" noch ein ".".  
  

> ~~~php
  

>    $from = "'$email'";  
> 

´´Um eine E-Mail zu senden, muss die E-Mail einen From-Header enthalten.``

Bei dir steht allerdings ein ungefilterter String in einfachen Anführungszeichen. Ein offenes Tor für Spambots. Es ist ganz einfach möglich, dass der Benutzer weitere Header sendet. Du solltest also zumindest dringend Zeilenumbrüche (\r und \n) filtern.
Richtig wäre z.B. $from = 'From: example@domain.tld';

Grüße, Matze