File "validarUsuario.php"

Full Path: C:/wamp64/www/sistemas/validarUsuario.php
File size: 3.03 KB
MIME-type: text/x-php
Charset: utf-8

<?php
// validarUsuario.php
session_start();
include("connection.php");
$con = connection();

// Verificar si se enviaron los datos del formulario
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    
    // --- Validación de reCAPTCHA ---
    if (!isset($_POST['g-recaptcha-response']) || empty($_POST['g-recaptcha-response'])) {
        echo "<script>alert('Por favor completa el captcha.'); window.location.href='login.php';</script>";
        exit();
    }

    $recaptcha_response = $_POST['g-recaptcha-response'];
    $secret_key = '6LcUafsrAAAAAL2xMNSvimYvzrMlC3YFSgUJGQPx';
    $url = 'https://www.google.com/recaptcha/api/siteverify';
    $data = array(
        'secret' => $secret_key,
        'response' => $recaptcha_response,
        'remoteip' => $_SERVER['REMOTE_ADDR']
    );

    // Usar file_get_contents con contexto HTTP
    $options = array(
        'http' => array(
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'method'  => 'POST',
            'content' => http_build_query($data)
        )
    );
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    
    if ($result === FALSE) {
        // Error al conectar con el servicio de reCAPTCHA
        echo "<script>alert('Error al validar el captcha. Intenta de nuevo.'); window.location.href='login.php';</script>";
        exit();
    }
    
    $result_json = json_decode($result, true);
    if (!$result_json['success']) {
        // Captcha inválido
        echo "<script>alert('La verificación de seguridad falló. Por intenta de nuevo.'); window.location.href='login.php';</script>";
        exit();
    }
    // --- Fin validación reCAPTCHA ---

    // Obtener y sanitizar los datos del formulario
    $nombre = mysqli_real_escape_string($con, $_POST['nombre']);
    $contrasena = mysqli_real_escape_string($con, $_POST['contrasena']);
    
    // Consultar la base de datos para verificar las credenciales
    $sql = "SELECT * FROM Usuarios WHERE nombre = '$nombre'";
    $query = mysqli_query($con, $sql);
    
    if (mysqli_num_rows($query) > 0) {
        $usuario = mysqli_fetch_array($query);
        
        // Verificar la contraseña
        if ($contrasena == $usuario['contrasena']) {
            // Credenciales correctas, crear sesión
            $_SESSION['id'] = $usuario['id'];
            $_SESSION['nombre'] = $usuario['nombre'];
            $_SESSION['loggedin'] = true;
            
            // Redirigir a index.php
            header("Location: index.php");
            exit();
        } else {
            // Contraseña incorrecta
            echo "<script>alert('Contraseña incorrecta'); window.location.href='login.php';</script>";
        }
    } else {
        // Usuario no encontrado
        echo "<script>alert('Usuario no encontrado'); window.location.href='login.php';</script>";
    }
} else {
    // Si alguien intenta acceder directamente a este archivo
    header("Location: login.php");
    exit();
}
?>