Mailfilter versagt bei Variablen


tklustig

Erfahrenes Mitglied
#1
Hallo Leute,
folgender Code versagt seinen korrekten Dienst:

PHP:
if (filter_var($arrayOfBegriffe[7], FILTER_VALIDATE_EMAIL)) {
   $mailIsValid = true;
   $zieladresse = $arrayOfBegriffe[7];
 }
Debugcode...:
PHP:
var_dump($arrayOfBegriffe[7]);
var_dump(filter_var($arrayOfBegriffe[7], FILTER_VALIDATE_EMAIL));
$mailAdress=$arrayOfBegriffe[7];
var_dump(filter_var($mailAdress, FILTER_VALIDATE_EMAIL));
var_dump(filter_var('kipp.thomas@gmx.net', FILTER_VALIDATE_EMAIL));
die();
..führt zu folgender mir unverständlicher Ausgabe:
Code:
X:\xampp\htdocs\yii2_ErkanImmo\frontend\controllers\TerminController.php:222:string 'kipp.thomas@gmx.net' (length=21)
X:\xampp\htdocs\yii2_ErkanImmo\frontend\controllers\TerminController.php:223:boolean false
X:\xampp\htdocs\yii2_ErkanImmo\frontend\controllers\TerminController.php:225:boolean false
X:\xampp\htdocs\yii2_ErkanImmo\frontend\controllers\TerminController.php:226:string 'kipp.thomas@gmx.net' (length=19)
 

tklustig

Erfahrenes Mitglied
#2
Warum dem so ist, entzieht sich meiner Kenntniss, aber folgender Code zeigt auf, dass sich am Ende der Arraymail 2 Leerzeichen befinden, die in der var_dump()-Ausgabe nicht erscheinen, als nicht sichtbare Steuerzeichen, quasi:
PHP:
$string=$arrayOfBegriffe[7];
for($i=0;$i<strlen($string);$i++){
  print_r("Zeichen bei $i:$string[$i]<br>");
}
Folgendes hat geholfen, die Mailadresse zu validieren:
PHP:
$arrayOfBegriffe[7] = substr($arrayOfBegriffe[7], 0, -2);