"./?option=manage_profile");
        parent::__construct('formChangeUserEmail', $options);
    }
    
    protected function generaCamposFormulario($datos, $errores = array()){
        $nombre = $datos['nombreUsuario'] ?? '';
        // Se generan los mensajes de error si existen.
        $htmlErroresGlobales = self::generaListaErroresGlobales($errores);
        $errorEmail = self::createMensajeError($errores, 'new_email', 'span', array('class' => 'error'));
        $errorEmail2 = self::createMensajeError($errores, 'remail', 'span', array('class' => 'error'));
        $errorPassword = self::createMensajeError($errores, 'pass', 'span', array('class' => 'error'));
        $html = "
";
        return $html;
    }
    
    /* TODO */
    protected function procesaFormulario($datos){
        $result = array();
        
        $email = $datos['new_email'] ?? null;
        if ( empty($email) || !mb_ereg_match(self::HTML5_EMAIL_REGEXP, $email) ) {
            $result['new_email'] = "El nuevo email no es válido.";
        }
        $email2 = $datos['remail'] ?? null;
        if ( empty($email2) || strcmp($email, $email2) !== 0 ) {
            $result['remail'] = "Los emails deben coincidir";
        }
        
        $password = $datos['pass'] ?? null;
        if ( empty($password) || mb_strlen($password) < 4 ) {
            $result['pass'] = "El password tiene que tener\n una longitud de al menos\n 4 caracteres.";
        }
        
        if (count($result) === 0) {
           $bd = new UserDAO("complucine");
           $user = $bd->selectUser(unserialize($_SESSION['user'])->getName(), $password);
           if (!$user) {
            $result[] = "El usuario no existe.";
            $_SESSION['message'] = "
                                        
                                        
                                            
                                                Ha ocurrido un probrema
                                                No hemos podido actualizar su email de usuario.
                                                Comprueba que la contraseña introducida sea correcta.
                                                
                                             
                                         
                                        
                                     
                                    ";
            } else {
                $bd->changeUserEmail(unserialize($_SESSION['user'])->getId(), $email);
                $_SESSION['message'] = "
                                            
                                            
                                                
                                                    Operacion realizada con exito
                                                    Se ha modificado su email correctamente.
                                                    
                                                 
                                             
                                            
                                         
                                        ";
                $result = './?option=manage_profile';
            }
        }
        return $result;
    }
    protected function test_input($input){
        return htmlspecialchars(trim(strip_tags($input)));
    }
}
?>