<?php 
	# Aquí pon la clave secreta que obtuviste en la página de developers de Google
	define("CLAVE_SECRETA", "6Leu9xUrAAAAAKab2BpKt3PCBmuWt05fqmrZOpko");

	# Comprobamos si enviaron el dato
	if (!isset($_POST["g-recaptcha-response"]) || empty($_POST["g-recaptcha-response"])) {
		echo '<script>alert("Debes completar el captcha"); history.back();</script>';
	}

	# Antes de comprobar usuario y contraseña, vemos si resolvieron el captcha
	$token = $_POST["g-recaptcha-response"];
	$verificado = verificarToken($token, CLAVE_SECRETA);
	# Si no ha pasado la prueba
	if ($verificado) {
		/**
		 * Llegados a este punto podemos confirmar que el usuario
		 * no es un robot. Aquí debes hacer lo que se deba hacer, es decir,
		 * comprobar las credenciales, darle acceso, etcétera, pues
		 * ya ha pasado el captcha
		 */
		echo "Has completado la prueba :)";
	} else {
		exit("Lo siento, parece que eres un robot");

	}



	// Incluir la biblioteca de compatibilidad
	require('password.php');

	if ($_SERVER["REQUEST_METHOD"] == "POST") {
	    $usu = $_POST['usuario'];
	    $cont = $_POST['contraseña'];

	    login($usu, $cont);
	}

	function login($usu, $cont){
	    include("conexion.php");

	    // Consulta para obtener el usuario por su documento
	    $consulta = "SELECT usuario_id, documento, nombres, apellidos, contraseña, tipo_usuario FROM usuarios WHERE documento='$usu'";
	    $exe = mysqli_query($conn, $consulta);
	    $d = mysqli_fetch_array($exe);

	    if ($d) {
	        $hash = $d['contraseña'];

	        // Verificar la contraseña encriptada
	        if (password_verify($cont, $hash)) {
	            session_start();
	            
	            $_SESSION['nombre'] = $d['nombres'] . ' ' . $d['apellidos'];
	            $_SESSION['cedula'] = $d['documento'];
	            $_SESSION['tipo'] = $d['tipo_usuario'];
	            $_SESSION['id_usuario'] = $d['usuario_id'];

	            if ($d['tipo_usuario'] == 'Paciente') {
	                echo '<script>self.location="medicamentos.php"</script>';
	            } else {
	                echo '<script>self.location="comunidad.php"</script>';
	            }
	        } else {
	            echo '<script>alert("Valide usuario y contrasena."); self.location="index.php";</script>';
	        }
	    } else {
	        echo '<script>alert("Valide usuario y contrasena."); self.location="index.php";</script>';
	    }
	}
	function verificarToken($token, $claveSecreta)	{
		# La API en donde verificamos el token
		$url = "https://www.google.com/recaptcha/api/siteverify";
		# Los datos que enviamos a Google
		$datos = [
			"secret" => $claveSecreta,
			"response" => $token,
		];
		// Crear opciones de la petición HTTP
		$opciones = array(
			"http" => array(
				"header" => "Content-type: application/x-www-form-urlencoded\r\n",
				"method" => "POST",
				"content" => http_build_query($datos), # Agregar el contenido definido antes
			),
		);
		# Preparar petición
		$contexto = stream_context_create($opciones);
		# Hacerla
		$resultado = file_get_contents($url, false, $contexto);
		# Si hay problemas con la petición (por ejemplo, que no hay internet o algo así)
		# entonces se regresa false. Este NO es un problema con el captcha, sino con la conexión
		# al servidor de Google
		if ($resultado === false) {
			# Error haciendo petición
			return false;
		}
		echo $resultado;

		# En caso de que no haya regresado false, decodificamos con JSON
		# https://parzibyte.me/blog/2018/12/26/codificar-decodificar-json-php/

		$resultado = json_decode($resultado);
		# La variable que nos interesa para saber si el usuario pasó o no la prueba
		# está en success
		$pruebaPasada = $resultado->success;
		# Regresamos ese valor, y listo (sí, ya sé que se podría regresar $resultado->success)
		return $pruebaPasada;
	}

?>