2012-11-21 12 views
9

campione valido indirizzo e-mail:Come costante è FILTER_VALIDATE_EMAIL?

"questo è un indirizzo valido" @ example.com

codice PHP:

<?php 
header('Content-Type: text/plain'); 

$email = '"this is a valid address"@example.com'; 
$checked = filter_var($email, FILTER_VALIDATE_EMAIL); 
var_dump($email, $checked); 

uscita su un server: (Versione PHP 5.2.6):

string (37) "" questo è un indirizzo valido "@ example.com"
string (37) "" questo è un indirizzo valido "@ example.com"

phpinfo():

Input Validation and Filtering  enabled 
Revision       $Revision: 1.52.2.42 $ 

Directive    Local Value Master Value 
filter.default  unsafe_raw unsafe_raw 
filter.default_flags no value  no value 

uscita su un altro server (PHP versione 5.3.3):

stringa (37) "" questo è un indirizzo valido "@ example.com"
bool (false)

phpinfo():

Input Validation and Filtering  enabled 
Revision       $Revision: 298196 $ 

Directive    Local Value Master Value 
filter.default  unsafe_raw unsafe_raw 
filter.default_flags no value  no value 

non riesco a vedere nulla in the documentation suggerire che questo è cambiato, quindi forse è qualche altra impostazione di configurazione.

+0

[Test per la convalida della posta PHP] (http://fightingforalostcause.net/misc/2006/compare-email-regex.php), [Risposta semi-correlata] (http: //stackoverflow.com/questions/12026842/how-to-validate-an-email-address-in-php/12026863#12026863), [impegna] (https://github.com/php/php-src/commits /master/ext/filter/logical_filters.c) e [Changelog] (http://nl.php.net/ChangeLog-5.php). Conclusione: no non coerente ;-) è stato migliorato un paio di volte. – PeeHaa

+1

** Questo potrebbe essere un indirizzo email valido, ma chiunque utilizzi in realtà non è valida ... nel '' . ** * Se si riesce a fare alcune cose, ciò non significa in realtà si dovrebbe.* Non avrei MAI inviato MAI un'e-mail a un indirizzo del genere, per rispetto della sanità mentale. – CodeAngry

risposta

6

Come si può vedere sul http://3v4l.org/vKONS l'utilizzo del filtro FILTER_VALIDATE_EMAIL non è coerente!

http://3v4l.org/vKONS uscite per PHP 5.2.0, 5.2.14 - 5.2.17, 5.3.3 - 5.3.18, 5.4.0 - 5.4.8

string(37) ""this is a valid address"@example.com" 
bool(false) 

e per 5.2.1 - 5.2. 13, 5.3.0 - 5.3.2

string(37) ""this is a valid address"@example.com" 
string(37) ""this is a valid address"@example.com" 

è notevole che ha funzionato per 5.2.0 ma non 5.2.1-5.2.13 e poi di nuovo per 5.2.14 !!!

Btw 3v4l.org è una grande risorsa per controllare tali cambiamenti di comportamento in tutte le versioni PHP disponibili.

Ci sono several bugs open compreso il termine FILTER_VALIDATE_EMAIL, ma nessuno sembra corrispondere al tipo di errore. Potresti aggiungerlo allo PHP bugtracker ...

+0

Accettato per rispondere alla domanda. +1 per il collegamento a 3v4l.org. – TRiG

Problemi correlati