Ein Komma in Eingabefeldern verhindern?

Hallo!

Wenn ein Nutzer ein Kontaktformular ausfüllt und dabei im Namensfeld statt „Peter Mustermann“ „Mustermann, Peter“ angibt, ist es so, dass die nachfolgende Variable $email irgendwie beschnitten wird und der Absender der zu generierten E-Mail nicht stimmt… wie kann ich das verhindern?

Also nochmal verständlich:

Ich habe ein Eingabefeld:

Fall 1:

Name: Hans Mustermann
Ort: Musterstadt
E-Mail: [email protected]

per mail() wird dann eine E-Mail erzeugt, die
als Absender [email protected] beinhaltet.


Fall 2:

Name: Mustermann, Hans
Ort: Musterstadt
E-Mail: [email protected]

per mail() wird nun ebenfalls eine E-Mail generiert, nur als Absender in der Mail habe ich nun als Namen „Mustermann“ und keine E-Mail-Adresse… das liegt also anscheinend an dem Komma - wie kann ich das verhindern?

Danke :smile:

Gruß,
Sascha

also genaues warum kann ich dir nicht sagen, aber mach ein feld für vor- und eines für nachnamen dann müsste sich das von selbst erledigen!

mfg

also genaues warum kann ich dir nicht sagen, aber mach ein
feld für vor- und eines für nachnamen dann müsste sich das von
selbst erledigen!

mfg

Tja, das habe ich mir eigentlich auch schon überlegt… ist vermutlich auch das einfachste, aber es muss doch auch ne Möglichkeit geben, ein Komma zu unterbinden, oder? Schließlich kann ich ja auch festlegen, dass in einem Feld nur Zahlen akzeptiert werden oder z.B. nur 5 Stellen (für PLZ)… naja, werde wohl ein 2. Feld für den Vornamen erstellen…

Danke.

WIe wärs mit:

$name = str_replace(’,’, ‚‘, $name);

?

WIe wärs mit:

$name = str_replace(’,’, ‚‘, $name);

?

Das sieht schonmal vielversprechend aus - werde ich mal testen. Danke !

Hallo !

Hallo!

Wenn ein Nutzer ein Kontaktformular ausfüllt und dabei im
Namensfeld statt „Peter Mustermann“ „Mustermann, Peter“
angibt, ist es so, dass die nachfolgende Variable $email
irgendwie beschnitten wird und der Absender der zu generierten
E-Mail nicht stimmt… wie kann ich das verhindern?

Beim Absender der E-Mail

"From: \"$name\" "

sollte das auch mit Komma ermöglichen.

Ansonsten natürlich, wie schon unten gesagt, mit str_replace ersetzen.
Auf jeden Fall sollten \n und \r in dem Namen und der Mailadresse (am besten bei allem, was an mail() übergeben wird, mit Ausnahme des Textes) entfernt werden, die Eingabe von E-Mail\nBcc: … ist mittlerweile bei Spammern leider sehr verbreitet…

Alexander

Hallo !

Beim Absender der E-Mail

"From: „$name“ "

sollte das auch mit Komma ermöglichen.

Ansonsten natürlich, wie schon unten gesagt, mit str_replace
ersetzen.
Auf jeden Fall sollten \n und \r in dem Namen und der
Mailadresse (am besten bei allem, was an mail() übergeben
wird, mit Ausnahme des Textes) entfernt werden, die Eingabe
von E-Mail\nBcc: … ist mittlerweile bei Spammern leider sehr
verbreitet…

Alexander

Bei mir sieht das ganze so aus:


[…]
$a1 = „Es wurde eine E-Mail von Ihrer Homepage gesendet:“;
$strich = „\n------------------------------------------“;
$wer = „\n\nAnrede: $anrede“;
$name = str_replace(’,’, ‚‘, $name);
$ort = str_replace(’,’, ‚‘, $ort);
$b1 = „\nVon: $name“;
$b2 = „\nE-Mail: $email“;
$b3 = „\n\nStrasse: $strasse“;
$b4 = „\nOrt: $ort“;
$b5 = „\nTel.: $telefon“;
$b6 = „\n\nAnfrage:\n\n $anfrage“;

$betreff=„Anfrage über Ihre Internetseite“;

mail(„[email protected]“, „$betreff“, „$a1$strich$wer$b1$b2$b3$b4$b5$b6“, "From: $name ");

[…]

Ohne die beiden Zeilen mit dem str_replace führte das ganze dann dazu, dass bei einem angegebenen Komma im Namesfeld die E-Mail-Adresse plötzlich nicht mehr als Absender angegeben wurde - also wenn man auf diese Anfrage geantwortet hat, ging die Mail ins Leere…

Hallo,

ich meinte das auch so:

mail("[email protected]", "$betreff",
 "$a1$strich$wer$b1$b2$b3$b4$b5$b6", "From: \"$name\"
");

also mit „“ um den Namen rum…

Bitte die \r und \n noch bei $name und $email per str_replace löschen, also

$email = str\_replace(Array("\r","\n"), "", $email);

Alexander