• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Hilfe !! Was ist Falsch

cede123

Neues Mitglied
Hallo liebe Community,

ich hoffe mir kann hier jemand helfen. Ich habe hier schon alles durchgeguckt aber es kann sein das ich einfach zu doof dafür bin kann mir mal jemand sagen was hier falsch ist ???


PHP:
<?php
$user = $POST['vname'];$nname = $POST['nname'];$usermail = $POST['e-mail'];$utext = $POST['text'];
if(isset($user)){

$empfaenger = "*******@domain.de";$absendername = "Kontaktformular";$absendermail = "[email protected]";$betreff = "Kontaktform";$text = "Hallo!        $user war gerade auf deiner Seite und         wollte dir sagen, dass sie ihm/ihr sehr gut        gefallen.Und dir folgendes mitteilen: $utext        Wenn du mit ihm/ihr Kontakt aufnehmen         mˆchtest, benutze bitte die Adresse $usermail.";mail($empfaenger, $betreff, $text, "From: $absendername <$absendermail>");
}?>

HTML:

HTML:
<form action="" method="POST">		<fieldset>		<legend>E-Mail senden...</legend>		<label for="vname">Vorname:  </label><input type="text" name="vname" id="vname"><br>		<label for="nname">Nachname:  </label><input type="text" name="nname" id="nname"><br>		<label for="e-mail">E-Mail:  </label><input type="text" name="e-mail" id="e-mail"><br><br>		<label for="text">Text:  </label>		<textarea cols="35" rows="4" name="text" id="text"> 		Bitte schreiben sie hier kurz aber aussagekr‰ftig ihr Belangen.		</textarea> <br><br>		<input type="submit" name="absenden" id="absenden" value="Absenden">		</fieldset>		</form>
 
Werbung:
Naja das weiß ich auch nicht genau, ich habe nur das Problem das anscheinend die Daten nicht richtig übermittelt werden wenn ich sie über ein Echo Befehl ausgeben will kommt gar nichts ;(.

Was ist an mail() denn falsch, gibt es bessere Alternativen ??
 
Werbung:
Überprüfe mal am Anfang Deines Scripts ob die $_POST-Variable überhaupt richtig gefüllt ist, z.B. mit der print_r()-Funktion.

Da ich mich mit der mail()-Funktion schon lange nicht mehr beschäftigt habe, kann ich Dir jetzt auch nicht unbedingt sagen was daran falsch ist, aber es wird in Bezug auf mail() immer wieder PHPMailer erwähnt.
 
In deinem PHP-Code greifst Du auf

PHP:
$POST['vname']

zu, das ist falsch. Richtig wäre

PHP:
$_POST['vname']

(Identisch auch an allen anderen Stellen in deinem Code wo $POST vorkommt.)

mail() sollte man heutzutage aus Sicherheitsgründen nicht verwenden. PHPMailer ist eine der Alternativen dazu.
 
//OFF TOPIC: ich weiß solche fragen kommen immer etwas blöd aber ich frag wirklich nur weil ich es wissen möchte. warum ist mail() nicht sicher? ich hör zum ersten mal davon und bin etwas überrascht!
 
Werbung:
Es gibt einige Gründe, warum man die mail-Funktion von PHP nicht nutzen sollte.
1. Viele Server erwarten einen korrekten Mail-Header, sonst werden Mails nicht akzepiert. Sich durch die RFC822 zu kämpfen, ist kein Vergnügen, das nimmt der phpMailer einem ab.
2. Immer mehr Mailserver verlangen eine Authentifierung, das ist mit dem phpMailer ein Klacks.
3. Mit dem phpMailer kann man sowohl eine Text- als auch eine HTML-Mail gleichzeitig senden.
4. Mehrere Attachments sind ein Kinderspiel
5. Inline-Grafiken sind auch kein Problem

Das sind auf die schnelle einige Gründe, da gibt es bestimmt noch mehr. Aber Punkt 1 und 2 reichen eigentlich schon, um die Finger von der mail-Funktion zu lassen
 
Kurz gesagt: Wenn du mail() nicht korrekt nutzt, können Leute auch über dein Kontaktformular Spam an Dritte verschicken, indem sie gewisse Header hinzufügen. (Grob: Spam-Nachricht einmal an dich und per BCC-Header auch noch an Dritte. Ja, das geht wirklich.)

- https://de.wikipedia.org/wiki/E-Mail-Injection
- Mail-Header Injection - eine Analyse an PHP | PHP Application and Website Defense (via Wikipedia)


Offtopic:

Die folgenden Fehler traten bei der Verarbeitung auf

Die abgeschickten Daten konnten nicht verarbeitet werden, da Sie sich angemeldet haben, nachdem diese Seite geladen wurde.\n\nBitte klicken Sie auf 'Zurück' und laden Sie die vorherige Seite neu.

Boah, ein Euro für jedes Mal, dass ich das lesen oder dass ich mich wegen Session-Timeout neu einloggen muss oder dass ich den Post aus sonstigen Gründen nicht beim ersten Versuch abschicken kann… Ich hätte gefühlt eine vierstellige Summe zusammen. https://addons.mozilla.org/en-US/firefox/addon/lazarus-form-recovery/ Best Add-on Ever.
 
Zurück
Oben