Hallo nochmals,
vielen Dank für alle Antworten!
Meine Funktion zum Prüfen auf ungültige Zeichen sieht derzeit wie folgt aus:
function testMail($str) {
if (!is_string($str) || strlen($str) > 255) {
// variable must be a string with a max. length of 255
return false;
} else if (strpos($str, '@') === false) {
// there must be an @
return false;
} else {
// check for invalid characters
for ($i = 0; $i < strlen($str); $i++) {
$c = $str[$i];
$cCode = ord($c);
if ($cCode < 32 || $cCode > 127) {
// control characters and non-ascii characters not allowed
return false;
}
if (strpos('<>,; :\'"', $c) !== FALSE) {
// invalid characters
return false;
}
if ($i == (strlen($str) - 1) && $c == '.') {
// last character should be no dot
return false;
}
}
}
return true;
}
Ich habe zu den anderen Zeichen noch die drei Zeichen : ' und " mit in die Liste der verbotenen Zeichen eingefügt - da diese in der Praxis kaum vorkommen.
Alles in allem zeigt auch dieser Thread, dass die Syntax von E-Mail-Adressen ziemlich kompliziert ist und aufmerksam vor Verwendung in der mail()-Funktion geprüft werden sollte.
WICHTIG (für's Archiv): Wer diese Funktion nutzt, sollte sich darüber im Klaren sein, dass dies keine Funktion ist um zu prüfen ob eine E-Mail-Adresse valide ist, sondern lediglich eine einigermaßen akzeptable Prüfung für die Verwendung in der mail()-Funktion ist.
Grüße
Marc Reichelt || http://www.marcreichelt.de/
DPRINTK("Last time you were disconnected, how about now?");
linux-2.6.6/drivers/net/tokenring/ibmtr.c
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)