![]() |
[PHP] checkdnsrr() schlägt fehl :-/
Hi,
ich versuche für eine Online-Anmeldung einen EMail-Filter zu bauen. also filter ist eigentlich nicht ganz korrekt, er soll nur gucken ob die email korrekt ist, also syntax und domain überprüfen. dazu analysiere ich erstmal via regex die adresse und gucke dann ob checkdnsrr was findet.... das gante sieht dann so aus:
Code:
aber selbst wenn ich eine richtige email-adresse eingebe (zB glkgereon at web dot de (natürlich mit @ und . ;-) )) gibt er false zurück.
function valid_email($email) {
$email_regex = '/(.+)@(.+)\.(.+)/'; preg_match($email_regex,$email,$matches); //DNS checken //print_r($matches); return checkdnsrr($matches[2].'.'.$matches[3]); } print_r schreibt folgendes: Zitat:
|
Re: [PHP] checkdnsrr() schlägt fehl :-/
Ja, ich hab ne Idee: Vergiss es!
Hier mal ein Zitat aus dem "Add note"-Formular bei php.net: Zitat:
Weiters, hast du error_reporting auf E_ALL gestellt, und display_errors in deiner php.ini auf 1? Wenn ja, dann wirst du ziemlich sicher eine Fehlermeldung finden. Mein Tipp ist gethostbyname zu verwenden. Wenn es den Host gibt, dann gibts ne IP, wenn nicht dann kriegst du den Hostname. Greetz alcaeus PS: Zur E-Mail, dir ist schon klar dass ich hinter dem @ theoretisch auch eine IP-Adresse schreiben kann? Und dass aber trotzdem nicht alle Zeichen gueltig sind? Jag mal die E-Mail-Adresse foo@foo@bar.com durch deine Regexp, und guck mal was passiert ;) |
Re: [PHP] checkdnsrr() schlägt fehl :-/
die funktion checkdnsrr ist auf windowscomputern nicht verfügbar!
![]() Zitat:
|
Re: [PHP] checkdnsrr() schlägt fehl :-/
nein, es ist schon ein linux-server :-)
und da wäre ja auch ne fehlermeldung gekommen. ich hab es nu so gelöst, wobei das problem mit mehreren @ und . wohl immer noch besteht?!
Code:
wenn noch einer ne idee hat...immer willkommen^^
function valid_email($email) {
$email_regex = '/(.+)@(.+)\\.(.+)/'; $ip_regex = '/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)/'; preg_match($email_regex,$email,$matches); return (preg_match($ip_regex,gethostbyname($matches[2].'.'.$matches[3]),$matches)!==false); } |
Re: [PHP] checkdnsrr() schlägt fehl :-/
Zitat:
Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz