"./?option=delete_user"); parent::__construct('formDeleteAccount', $options); } protected function generaCamposFormulario($datos, $errores = array()){ $nombre = $datos['username'] ?? ''; // Se generan los mensajes de error si existen. $htmlErroresGlobales = self::generaListaErroresGlobales($errores); $errorNombre = self::createMensajeError($errores, 'new_name', 'span', array('class' => 'error')); $errorEmail = self::createMensajeError($errores, 'email', 'span', array('class' => 'error')); $errorPassword = self::createMensajeError($errores, 'pass', 'span', array('class' => 'error')); $errorPassword2 = self::createMensajeError($errores, 'repass', 'span', array('class' => 'error')); $html = "
".$htmlErroresGlobales."
Datos de la cuenta
".$errorNombre."
".$errorEmail."
".$errorPassword."
".$errorPassword2."
"; return $html; } protected function procesaFormulario($datos){ $result = array(); $nombre = $this->test_input($datos['name']) ?? null; $nombre = strtolower($nombre); if ( empty($nombre) || mb_strlen($nombre) < 3 || mb_strlen($nombre) > 8 ) { $result['new_name'] = "El nombre tiene que tener\n una longitud de al menos\n 3 caracteres\n y menos de 8 caracteres."; } $email = $this->test_input($datos['email']) ?? null; if ( empty($email) || !mb_ereg_match(self::HTML5_EMAIL_REGEXP, $email) ) { $result['email'] = "El email no es válido."; } $password = $this->test_input($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."; } $password2 = $this->test_input($datos['repass']) ?? null; if ( empty($password2) || strcmp($password, $password2) !== 0 ) { $result['repass'] = "Los passwords deben coincidir."; } if (count($result) === 0) { $bd = new UserDAO("complucine"); $user = $bd->selectUser($nombre, $password); if (!$user) { $result[] = "El usuario o contraseña\nno son correctos."; } else { if( (unserialize($_SESSION['user'])->getId() === $user->getId()) && ($nombre === $user->getName()) && ($email === $user->getEmail()) && ($bd->verifyPass($password, $user->getPass())) ){ $bd->deleteUserAccount($user->getId()); unset($_SESSION); session_destroy(); $result = ROUTE_APP; } else { $result[] = "Los datos introducidos\nno son válidos."; } } } return $result; } } ?>