Beispiel #1
0
        }else {
            $consultaResultante = $bd->prepare("INSERT INTO pass(password) values('$passNueva')");
            $consultaResultante->execute(); 
            if($consultaResultante){
               echo("<script>alert('El cambio de contraseña se a realizado correctamente');</script>"); 
            }else {
                echo("<script>alert('No se realizó el cambio');</script>"); 
            }
        }*/
});
$app->post("/login/", function () use($app, $bd) {
    expiraSesion();
    $solicitud = $app->request();
    $user = $app->request->post("user");
    $pass = $app->request->post("pass");
    $dbManejador = new BDManager();
    if (empty($_SESSION["intentosIp"])) {
        $_SESSION["intentosIp"] = 0;
    }
    if (empty($_SESSION["{$user}"])) {
        $consultaResultante = $bd->prepare("SELECT intentosFallidos FROM usuario WHERE matricula='{$user}'");
        $consultaResultante->execute();
        $resultados = $consultaResultante->fetchAll(PDO::FETCH_ASSOC);
        $_SESSION["{$user}"] = $resultados[0]["intentosFallidos"];
    }
    $resConsulta = $dbManejador->realizarConsulta("SELECT ps.password FROM pass ps, usuario us WHERE ps.matricula = us.matricula AND ps.matricula = '{$user}' AND us.intentosFallidos < 3 ORDER BY ps.fecha DESC LIMIT 1");
    //$consultaResultante = $bd->prepare("SELECT p.matricula, p.nombre, p.apellidos, u.rol, ps.fecha FROM persona p, usuario u, pass ps WHERE p.matricula= u.matricula AND u.matricula=ps.matricula AND u.matricula='$user' AND ps.password=sha1('$pass') AND u.intentosFallidos<3");
    //$consultaResultante->execute();
    if ($resConsulta && strcmp($resConsulta[0]['password'], sha1($pass)) == 0) {
        //Si hay usuarios
        $resConsulta = $dbManejador->realizarConsulta("SELECT p.matricula, p.nombre, p.apellidos, u.rol, ps.fecha FROM persona p, usuario u, pass ps WHERE p.matricula= u.matricula AND u.matricula=ps.matricula AND u.matricula='{$user}' AND ps.password=sha1('{$pass}') AND u.intentosFallidos<3");
    $apellidos = $app->request->post("apellidos");
    $user = $app->request->post("user");
    $pass = $app->request->post("pass");
    $resultadoConsulta = $bdManager->realizarConsulta("SELECT persona_id FROM usuario WHERE persona_id='{$user}'");
    if ($resultadoConsulta) {
        renderPrincipal($twig, "principal.html", "El usuario ya existe, intente con otro usuario");
        $app->stop();
    }
    $bdManager->realizarAccion("INSERT INTO usuario(persona_id, rol, intentos) VALUES('{$user}', 'alumno', 0)");
    $bdManager->realizarAccion("INSERT INTO persona(persona_id, nombres, apellidos) VALUES('{$user}', '{$name}', '{$apellidos}')");
    $bdManager->realizarAccion("INSERT INTO pass(persona_id, pass, antiguedad) VALUES('{$user}', sha1('{$pass}'), NOW())");
    renderPrincipal($twig, "principal.html", "Usuario registrado correctamente");
});
$app->post('/nuevaContrasenia', function () use($app) {
    if (!isSessionExpired()) {
        $bdManager = new BDManager();
        $currentPass = $app->request->post("currentPass");
        $newPass = $app->request->post("newPass");
        $resultadoConsulta = $bdManager->realizarConsulta("SELECT antiguedad FROM pass WHERE persona_id='" . $_SESSION["user"]->getCorreo() . "' AND pass=sha1('" . $currentPass . "')");
        if ($resultadoConsulta) {
            $resultadoConsulta = $bdManager->realizarConsulta("SELECT antiguedad FROM pass WHERE persona_id='" . $_SESSION["user"]->getCorreo() . "' and pass=sha1('" . $newPass . "')");
            if ($resultadoConsulta) {
                echo "La contraseña nueva ya fue usada alguna vez.";
            } else {
                $resultadoConsulta = $bdManager->realizarConsulta("SELECT pass, antiguedad FROM pass WHERE persona_id='" . $_SESSION["user"]->getCorreo() . "' ORDER BY antiguedad DESC LIMIT 3");
                if (count($resultadoConsulta) >= 3) {
                    $resultadoConsulta = $bdManager->realizarAccion("DELETE FROM pass WHERE persona_id='" . $_SESSION["user"]->getCorreo() . "' ORDER BY antiguedad ASC LIMIT 1");
                }
                $bdManager->realizarAccion("INSERT INTO pass VALUES('" . $_SESSION["user"]->getCorreo() . "', sha1('" . $newPass . "'), NOW())");
                echo "La contraseña se cambió correctamente.";
                guardarBitacora("<" . $_SESSION["user"]->getCorreo() . "> Cambio de contraseña. ", $app->request()->getIp());