Mail-Formular-Problem
Hallo,
leider habe ich mich schon lange nicht mehr mit PHP beschäftigt. Aus diesem Grund bin ich auch sehr aus der Materie heraus und ich hoffe jemand vom Board kann mir helfen mein Script auf den neuesten Stand zu bringen und anzupassen. Bisher lief es immer einwandfrei, doch bei einem anderen Provider funktionierte es nicht, wenn man dem Formular keine Mail-Adresse mitgegeben hat. Dort hat es dann einen 404-Fehler gegeben. Wenn ich hier ein anderes Posting und die Antwort des Providers richtig interpretiere hat es mit der E-Mailinjection zu tun. Zitat:
Ich hoffe jemand von euch kennt sich mit dem Thema aus und kann mir weiter helfen um mein Script anzupassen zu können... Mein Quelltext: Code:
<? |
Hi!
Tausche diesen Blcok: Code:
if(mail($to_email,$_POST Code:
$check_send=mail($to_email,$_POST['betreff'],$comment,$headers); Jan |
Zitat:
danke für die schnelle Hilfe. Leider besteht das Problem weiterhin. :cry: VG SPMan |
Hi!
Na dann, stimmt hier noch etwas nicht. Tausche das: Code:
$from_name="{$_POST['vorname']} {$_POST Code:
Gruß Jan |
Hallo Jan,
jetzt hat es geklappt. Vielen Dank! :) Könntest Du mir evtl., falls Du Zeit und Lust hast, erklären was Du von dem was der Provider vorgeschlagen hast umgesetzt hast? Also auch, was Deine Änderungen bewirken. Ich möchte ja - wenn es geht - auch daraus lernen. VG SPMan |
Hi!
Kein Problem! Das Problem ist ja, das der Provider keine Mails versendet ohne Absenderadresse bzw. wenn eine Zieladresse fehlt. Die erste Korrektur bewirkt, dass keine E-Mail zurück an den Besucher geschickt wird, wenn auch keine Adresse vorhanden ist. Dazu habe ich eine IF-Bedinung aufgestellt, die die Variable $from_email prüft. Die zweite Korrektur war nötig, da im Header der E-Mail die Absenderadresse mitgeschickt wird. Diese Lösung ist eine kurz geschriebene IF-Bedinung. Wenn diese nicht gesetzt ist, wird die Adresse des Seiteninhabers verwendet, damit eine Mail ohne Probleme verschickt werden kann. Verstanden? Gruß Jan |
Zitat:
Wird mit einer solchen "Einstellung" vom Provider den E-Mailinjection-Angriffen vorgebeugt? Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Ich werde mir trotzdem den Code nochmal genauer angucken um nachzuvollziehen was im einzelnen passiert. Ist denn ansonsten der Code brauchbar, oder wäre noch etwas zu verbessern? VG & danke für Alles SPMan |
Jetzt antworte ich mir schon selbst. ;)
Ich habe bei Tests bemerkt, dass wenn man jetzt keine Mailadresse eingibt einem selbst sowohl die für den Absender bestimmte Mail als auch die für den Adressaten bestimmte Mail (die es ja ohne Mail-Adresse vom Adressaten gar nicht gibt) zugeht. Verstanden? ;) Wenn ja: Es ist zwar nicht schlimm, aber kann man das auch mit z.B. einer if-Abfrage ändern? |
Hi!
Stimmt soweit alles. :) Der Code sieht brauchbar aus. Man könnte hier und da vielleicht noch keine Sachen optimieren. Z.B. ist die Funktion eregi langsamer als preg_match, aber du wirst mit diesem Script ja nicht tausende von Mails versenden wollen... Gruß Jan |
Plausibilitäts Prüfung ist noch was anderes, aber so wie ich dein Können einschätze nicht wirklich für dich realisierbar.
Denn: Was du tun musst ist Folgendes: prüfe ob $from_email eine valide Email-Adresse ist prüfe ob $_POST['betreff'] ein valider Betreff ist (weiß nicht genau, wo da die Regelungen liegen, kann mir aber eine maximale Länge vorstellen) prüfe ob ... also jeden Parameter überprüfen, den du an mail() übergibst. Das ganze macht man mittels sog. regulärer Ausdrücke, unter http://regexlib.com/ findest du vlt. schon welche, die du "out of the box" benutzen kannst. Viel Glück! |
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:56 Uhr. |
Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
© Dirk H. 2003 - 2023