コード例 #1
0
<?php

session_start();
include_once "../conectbd.php";
require_once '../funciones.php';
$link = Conectar();
$email = $_POST['email'];
if ($email != "") {
    $resultado = $link->query(" SELECT * FROM Usuario WHERE email = '{$email}' ");
    if ($resultado->num_rows > 0) {
        $usuario = $resultado->fetch_assoc();
        $linkTemporal = generarLinkTemporal($usuario['email'], $link);
        if ($linkTemporal) {
            enviarEmail($usuario['email'], generarMensaje($linkTemporal));
            echo '<div class="alert alert-info"> Un correo ha sido enviado a su cuenta de email con las instrucciones para restablecer la contraseña </div>';
        } else {
            echo 'No puedo generarse la accion';
        }
    } else {
        echo '<div class="alert alert-warning"> No existe una cuenta asociada a ese correo. </div>';
    }
} else {
    echo "Debes introducir el email de la cuenta";
}
function generarLinkTemporal($email, $link)
{
    // Se genera una cadena para validar el cambio de contraseña
    $cadena = $email . rand(1, 9999999) . date('Y-m-d');
    // Se cifra la cadena para que nadie mas tenga acceso a ella ni pueda averiguar como se ha formado
    $token = sha1($cadena);
    $result = $link->query("INSERT INTO tblreseteopass (email, token) VALUES('{$email}','{$token}')");
コード例 #2
0
ファイル: login.php プロジェクト: rince1990/ProjectoSW
function verificarLogin($user, $pass)
{
    //El password obtenido se le aplica el crypt(md5)
    //Posteriormente se compara en el query
    $pass_c = sha1(md5($pass));
    $q = "select * from Usuario where email='{$user}' and password='******'";
    //obtenemos el link de la BD y ejecutamos la consulta
    $link = Conectar();
    $result = $link->query($q);
    //Si el resultado obtenido no tiene nada
    if ($result->num_rows == 0) {
        $q = "select intentos, estado from Usuario where email='{$user}'";
        $result = $link->query($q);
        if ($result->num_rows != 0) {
            $res = mysqli_fetch_assoc($result);
            //si estado es bloqueado
            //Muestra un error y redirige al index
            if ($res['estado'] == 'bloqueado') {
                echo 'El usuario esta bloqueado, se le ha enviado un email para restaurarlo';
            } else {
                $intentos = $res['intentos'];
                $intentos = $intentos + 1;
                //Si es el tercer intento fallido, se bloquea el usuario
                //Muestra un error y redirige al index
                if ($intentos == 3) {
                    $q = "UPDATE Usuario SET intentos='{$intentos}', estado='bloqueado' where email='{$user}'";
                    $result = $link->query($q);
                    $linktemporal = generarLinkTemporal($user, $link);
                    enviarEmail($user, generarMensaje($linktemporal));
                    echo 'El usuario ha sido bloqueado, se le ha enviado un email para restaurarlo';
                } else {
                    $q = "UPDATE Usuario SET intentos='{$intentos}' where email='{$user}'";
                    $result = $link->query($q);
                    echo 'Usuario o Contrasenia Incorrecta';
                }
            }
        } else {
            echo 'Usuario o Contrasenia Incorrecta';
        }
    } else {
        $reg = mysqli_fetch_assoc($result);
        if ($reg['estado'] != 'bloqueado') {
            session_start();
            $_SESSION["codSesion"] = guardarConexion($reg['email']);
            $_SESSION["useremail"] = $reg['email'];
            $_SESSION["username"] = $reg['nomApellidos'];
            $_SESSION["rol"] = $reg['rol'];
            //Poner a cero el numero de intentos
            $q = "UPDATE Usuario SET intentos='0' where email='{$user}'";
            $result = $link->query($q);
            usuarioEstaOnline();
            header("location:layout.php");
            $link->close();
            die;
        } else {
            echo '<script type="text/javascript">
                alert("El usuario esta bloqueado.");
                window.location="layout.php"
                </script>';
        }
    }
}