$gestor = new ManageUsuario($bd); /* * ** Recogida de datos del formulario *** */ $email = Request::post("email_register"); $password = Request::post("password2"); $strPos = strpos($email, "@"); $alias = substr($email, 0, $strPos); //El alias se extrae del correo electrónico /* * ** Encriptación de la contraseña *** */ $passEncriptada = sha1($password); /* * ** Insercción del usuario en la base de datos *** */ $sqlResultado = $gestor->count("alias like '" . $alias . "'"); $sesion = new Session(); if ($sqlResultado[0] == 0) { $usuario = new Usuario($email, $passEncriptada, $alias); $sesion->setUser($usuario); $gestor->insert($usuario); $claveActivacion = sha1($passEncriptada + Constants::SEMILLA); $correo = new Correo(); $destino = $email; $asunto = "Activación de su cuenta"; $mensaje = "Este es un correo de activación.\n \nDiríjase a la siguiente URL para activar su cuenta: https://galeria-haruijima-kun.c9users.io/pages/phpActivateUser.php?activate={$claveActivacion}&email={$email}"; $correo->setDestino($destino); $correo->setAsunto($asunto); $correo->setMensaje($mensaje); $correo->send(); $sesion->destroy(); $sesion->sendRedirect("registered.html"); } else { $sesion->destroy(); $sesion->sendRedirect("noRegistered.html"); }
public function resetClaveByEmailOrUsername($email_or_username) { Load::model('util/misc'); Load::model('util/correo'); $usuario = $this->findByEmail($email_or_username); if (!$usuario) { $usuario = $this->findByNick($email_or_username); } if ($usuario) { $reset_clave = Misc::generarClave(33); //Para el correo $host = Config::get('config.sitio.dominio'); $email = Config::get('config.sitio.email'); $url = $host . "usuario/cambiar_clave/{$usuario->email}/{$reset_clave}/"; //TODO que este contenido del correo lo tome de una plantilla. $body = "<p>Alguien (probablemente usted) solicitó que le enviemos\n este mensaje porque usted se ha olvidado de\n la contraseña de su cuenta.</p>\n <p>Si hace clic en el enlace de abajo, que le llevará a una página\n que tiene más indicaciones para cambiar o recuperar su contraseña.</p>\n <p>Si hace clic en el enlace y no funciona, copie y pegue el enlace\n en la barra de direcciones de su navegador.</p>\n <p>{$url}.</p>\n <p>Si usted no inició esta solicitud, por favor ignorarlo.\n Si necesita más ayuda, por favor visítenos en {$host}\n o envíenos un email a {$email}.</p>\n <p>Este mensaje se genera automáticamente.</p>\n <p>Has recibido este correo electrónico porque un restablecimiento de contraseña se solicitó para su cuenta.</p>"; $usuario->reset = $reset_clave; if ($usuario->update()) { if (Correo::send($usuario->email, $usuario->nombre, 'Restablecimiento de clave', $body)) { return true; } else { return false; } } else { return false; } } else { throw new KumbiaException('El usuario no existe con este email o nombre de usuario.'); } }