/** * Implementa le stesse funzionalità del metodo {@link validateValue}, ma restituisce * il motivo per cui la validazione è fallita: * <ul> * <li>{@link EmailValidator::ERROR_SYNTAX}: sintassi errata</li> * <li>{@link EmailValidator::ERROR_DOMAIN}: dominio inesistente (se il controllo è richiesto esplicitamente)</li> * <li>{@link EmailValidator::ERROR_NONE}: indirizzo valido</li> * </ul> * Se la mail da validare è null o stringa vuota la validazione viene considerata superata. * @param string $value Email da validare * @param boolean $checkDomain Se true richiede che venga verificata anche l'esistenza del dominio * @return string Errore di validazione (vedi costanti della classe) */ public function validateValueWithResponse($value, $checkDomain = false) { if ($value == null || strlen(trim($value)) == 0) { return self::ERROR_NONE; } if (parent::validateValue($value) === null) { if ($checkDomain === true) { list($address, $host) = explode('@', $value); return checkdnsrr($host) ? self::ERROR_NONE : self::ERROR_DOMAIN; } return self::ERROR_NONE; } return self::ERROR_SYNTAX; }