<?php
session_start();
include("includes/conex.php");

$usuario = htmlspecialchars(mysqli_real_escape_string($con,$_POST['email']));
$pass = htmlspecialchars(mysqli_real_escape_string($con,$_POST['clave']));
$idioma = htmlspecialchars(mysqli_real_escape_string($con,$_POST['idioma']));

$recordar = filter_input(INPUT_POST, 'recordar') ?? false; 
$zero = 0;
$awa = gethostname().'(WEB)';
function get_id_unico(){
    return date( "YmdHis" ) . sprintf( "%04d", rand( 0, 9999 ) );
}
$codigo = get_id_unico();
$PASS_STRING = 'PASS_MAXINT';
$sqlPASS = "SELECT VALOR FROM PARAMETROS WHERE CODIGO = ?";
$stmtPASS = $con->prepare($sqlPASS);
$stmtPASS->bind_param('s',$PASS_STRING);
$stmtPASS->execute();
$resPASS = $stmtPASS->get_result();
$filaPASS = $resPASS->fetch_array();
$PASS_MAXINT = $filaPASS['VALOR']; 
$sql = 'SELECT USUARIOS.*,USUARIOS_GRUPOS.* 
        FROM USUARIOS,USUARIOS_GRUPOS
        WHERE usuario = ?
        AND USUARIOS.GRUPO = USUARIOS_GRUPOS.CODIGO';
$stmt = $con->prepare($sql);
$stmt->bind_param('s',$usuario);
$stmt->execute();
$res = $stmt->get_result();
if($res->num_rows){
    $fila = $res->fetch_array();
    $sql2 = "SELECT ACTIVO FROM USUARIOS WHERE USUARIO = '$usuario'";
    $res2 = $con->query($sql2);
    $fila2 = $res2->fetch_array();
    if($fila2['ACTIVO'] === 0){
        $_SESSION['intentos'] = 0;
        header("Location:index.php");
    }else{
        if(sha1($pass) === $fila['CLAVE']){
            $a = 0;
            $sql = "INSERT INTO USUARIOS_ACCESOS
                    (CODIGO,USUARIO,ORDENADOR,FECHA,FALLIDO,AWA)
                    VALUES (?,?,?,NOW(),?,?)";
            $stmt = $con->prepare($sql);
            $stmt->bind_param('sssii',$codigo,$usuario,$awa,$zero,$a);
            $stmt->execute();
            $stmt->get_result();
            $sql = "UPDATE USUARIOS SET FALLIDOS = ? WHERE USUARIO = ?";
            $stmt = $con->prepare($sql);
            $stmt->bind_param('is',$zero,$usuario);
            $stmt->execute();
            $stmt->get_result();
            $sql = 'UPDATE USUARIOS SET AWA_SESION_ID = ?,SESIONAWA_FECHA = NOW() WHERE USUARIO = ?';
            $stmt = $con->prepare($sql);
            $stmt->bind_param('ss',$codigo,$usuario);
            $stmt->execute();
            $stmt->get_result();
            $sqlLogin = "SELECT * FROM USUARIOS WHERE USUARIO = '$usuario'";
            $resLogin = $con->query($sqlLogin);
            $filaLogin = $resLogin->fetch_array();
            $_SESSION['USUARIO'] = $filaLogin['USUARIO'];
            $_SESSION['GRUPO'] = $filaLogin['GRUPO'];
            $_SESSION['CONTACTO'] = $filaLogin['CONTACTO'];
            $_SESSION['AWA_SESION_ID'] = $filaLogin['AWA_SESION_ID'];
            $_SESSION['ORDENADOR_AWA'] = $awa;
            if($idioma !== ""){
                setcookie('idioma',$idioma,time() + (10 * 365 * 24 * 60 * 60),'/','','',true);
            }else{
                $idioma = 'SP';
                setcookie('idioma',$idioma,time() + (10 * 365 * 24 * 60 * 60),'/','','',true);                
            }
            if(!empty($recordar)){
                setcookie('usuario',$usuario,strtotime('+5 days'),'/','','',true);
                header('Location:dashboard.php');
            }else{
                header('Location:dashboard.php');
            }
        }else{
            $fallido = $fila['FALLIDOS'];
            if($fallido == $PASS_MAXINT){
                $sql = 'UPDATE USUARIOS SET ACTIVO = ? WHERE USUARIO = ?';
                $stmt = $con->prepare($sql);
                $stmt->bind_param('is',$zero,$usuario);
                $stmt->execute();
                $stmt->get_result();
                $_SESSION['intentos'] = 0;
                header("Location:index.php");
            }else{
                $a = 1;
                $masFallido = $fallido + 1;
                $sql = 'UPDATE USUARIOS SET FALLIDOS = ? WHERE USUARIO = ?';
                $stmt = $con->prepare($sql);
                $stmt->bind_param('is',$masFallido,$usuario);
                $stmt->execute();
                $stmt->get_result();
                $sql = 'INSERT INTO USUARIOS_ACCESOS
                        (CODIGO,USUARIO,ORDENADOR,FECHA,FALLIDO,AWA)
                        VALUES(?,?,?,NOW(),?,?)';
                $stmt = $con->prepare($sql);
                $stmt->bind_param('sssii',$codigo,$usuario,$awa,$zero,$a);
                $stmt->execute();
                $stmt->get_result();
                if($fila['FALLIDOS'] === 0){
                    $_SESSION['intentos'] = 1;
                }else{
                    $_SESSION['intentos'] = $fila['FALLIDOS'] + 1;
                }
                header("Location:index.php");
            }
        }
    }
}else{
    header('Location:index.php');
}