Beispiel #1
0
$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");
}
Beispiel #2
0
 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.');
     }
 }