Frage von Australialiker, 43

wieso kommt diese Fehlermeldung bei php formular?

<?php if ($_POST['from']!="" and $_POST['betreff']!="" and $_POST['message']!="" and $_POST['email'] !="" and $_POST['Haustelefon'] !="" and $_POST['Strasse'] !="" and $_POST['PLZ']!=""){ $empf = "EMAIL"; $from = $_POST['from']; $betreff = $_POST['betreff']; $message = $_POST['message']; $Haustelefon = $_POST['Haustelefon']; $Strasse = $_POST['Strasse']; $PLZ = $_POST['PLZ']; $email = $_POST['email']; bool mail(string $empf,String$betreff,String$from,String$message,String$Haustelefon,String$PLZ,String$Strasse); echo "Vielen Dank ihre E-Mail wurde erfolgreich versandt"; } else { echo "Bitte füllen sie alle Felder aus um Fehler zu vermeiden!"; } ?>
Antwort
von LeonardM, 23

Du rufst die mail function mit zu vielen parametern auf (die übrigens auch falsch sind teilweise) und du versuchst aus mail nen neuen bool zu machen bzw ne funktion mit bool als rückgabetyp..

Kommentar von Copyyy ,

mail() returned ja false, wenn es nicht klappt, ansonsten einen nicht leeren String, welcher wiederum als "true" ausgewertet werden würde. Ich verstehe, was du meinst, wollte das nur hinzufügen.

Kommentar von LeonardM ,

da hast du recht aber man kann ja trotzdem nicht ne "system" funktion bzw eine feste vom interpreter überschreiben :D so könnte es evtl gehen: (bool)mail(/*params*/);

Antwort
von Copyyy, 33

Genau das, was da steht. Die mail()-Funktion akzeptiert bis zu 5 Parameter. Welche das sind, kannst du z.B. hier (http://www.w3schools.com/php/func_mail_mail.asp) nachlesen

Antwort
von ceevee, 18

Steht doch schon in der Fehlermeldung... der mail()-Funktion kannst du höchstens 5 Parameter übergeben, du übergibst 7

bool mail(string $empf,String $betreff,String $from,String $message,String $Haustelefon,String $PLZ,String $Strasse);

http://php.net/manual/de/function.mail.php

Wenn ich mir deinen Funktionsaufruf so ansehe, dann würde ich mal vermuten, dass es Blödsinn ist, der mail()-Funktion eine Telefonnummer, PLZ und Straße mit zu übergeben.

Der zweite Fehler ist, dass du die Datentypen mit angibst. Richtiger wäre wahrscheinlich ein Code in Richtung

$mailSent = mail($empf, $betreff, $message + $Haustelefon + $PLZ + $Strasse);

if ($mailSent) {

// Ausgabe "Mail erfolgreich versandt"

}

Und die Variablennamen würde ich alle mit einem Kleinbuchstaben anfangen lassen.

Kommentar von Australialiker ,

Ich habe das jetzt getan die Nachricht kam auch an aber ohne Text nur eine Zahl

Kommentar von ceevee ,

Dann würde ich erstmal nur $message als letzten Parameter nehmen. Generell ist es wichtig, dass du den Code nicht nur rauskopierst und bei dir einsetzt, sondern auch (Zeile für Zeile) verstehst, was du da machst.

Keine passende Antwort gefunden?

Fragen Sie die Community