false, 'message' => 'Por favor ingresa un correo']); exit; } $correo = mysqli_real_escape_string($conexion, trim($data['correo'])); // Verificar si el correo existe en la base de datos $sql = "SELECT ID_Usuario, Usuario, Nombre FROM usuarios WHERE Correo = '$correo'"; $resultado = mysqli_query($conexion, $sql); if (!$resultado) { throw new Exception('Error en la consulta: ' . mysqli_error($conexion)); } if (mysqli_num_rows($resultado) === 0) { echo json_encode(['success' => false, 'message' => 'El correo no está registrado en el sistema']); exit; } $usuario = mysqli_fetch_assoc($resultado); $id_usuario = $usuario['ID_Usuario']; $nombre_usuario = $usuario['Nombre']; // Generar código de 6 dígitos $codigo = str_pad(rand(0, 999999), 6, '0', STR_PAD_LEFT); // Guardar el código con fecha de expiración (15 minutos) $fecha_expiracion = date('Y-m-d H:i:s', strtotime('+15 minutes')); $sql_update = "UPDATE usuarios SET Codigo_Recuperacion = '$codigo', Fecha_Exp_Codigo = '$fecha_expiracion' WHERE ID_Usuario = $id_usuario"; if (!mysqli_query($conexion, $sql_update)) { throw new Exception('Error al actualizar: ' . mysqli_error($conexion)); } // Construir el mensaje de email $asunto = 'Código de Recuperación - Complejo Cap1tan'; $mensaje = "Hola $nombre_usuario,\n\n"; $mensaje .= "Hemos recibido una solicitud para recuperar tu contraseña en Complejo Cap1tan.\n\n"; $mensaje .= "Tu código de verificación es: " . $codigo . "\n\n"; $mensaje .= "Este código expira en 15 minutos.\n\n"; $mensaje .= "Si no realizaste esta solicitud, por favor ignora este correo.\n\n"; $mensaje .= "Saludos,\nEquipo de Complejo Cap1tan"; // Enviar email usando Brevo $correo_enviado = enviarEmailBrevo($correo, $asunto, $mensaje, false); // Respuesta exitosa (el código se guardó en la BD de todas formas) echo json_encode([ 'success' => true, 'message' => 'Se ha enviado un código de verificación a tu correo. Por favor revisa tu bandeja de entrada.', 'test_codigo' => $codigo // Cambiar a false en producción ]); } catch (Exception $e) { echo json_encode([ 'success' => false, 'message' => 'Error: ' . $e->getMessage() ]); } ?>