false, 'message' => 'Método no permitido']); exit(); } if ($conexion->connect_error) { echo json_encode(['success' => false, 'message' => 'Error de conexión a la base de datos: ' . $conexion->connect_error]); exit(); } // Obtener datos del formulario $usuario = isset($_POST['usuario']) ? trim($_POST['usuario']) : ''; $contraseña = isset($_POST['contraseña']) ? trim($_POST['contraseña']) : ''; $confirmar_contraseña = isset($_POST['confirmar_contraseña']) ? trim($_POST['confirmar_contraseña']) : ''; $rol = isset($_POST['rol']) ? trim($_POST['rol']) : ''; $nombre = isset($_POST['nombre']) ? trim($_POST['nombre']) : ''; $apellido = isset($_POST['apellido']) ? trim($_POST['apellido']) : ''; $dni = isset($_POST['dni']) ? trim($_POST['dni']) : ''; $correo = isset($_POST['correo']) ? trim($_POST['correo']) : ''; $telefono = isset($_POST['telefono']) ? trim($_POST['telefono']) : ''; // El primer usuario registrado será el administrador supremo del sistema $contadorQuery = "SELECT COUNT(*) AS total FROM usuarios"; $contadorStmt = $conexion->prepare($contadorQuery); $contadorStmt->execute(); $contadorResult = $contadorStmt->get_result(); $primerUsuario = $contadorResult->fetch_assoc()['total'] == 0; $contadorStmt->close(); if ($primerUsuario) { $rol = 'admin'; } // Log para debugging error_log("Datos recibidos - Usuario: $usuario, Rol: $rol, Nombre: $nombre"); // Validar que los campos requeridos estén presentes if (empty($usuario) || empty($contraseña) || empty($confirmar_contraseña) || empty($rol) || empty($nombre) || empty($apellido) || empty($dni)) { echo json_encode(['success' => false, 'message' => 'Todos los campos requeridos deben estar completos']); exit(); } if (strlen($contraseña) < 6) { echo json_encode(['success' => false, 'message' => 'La contraseña debe tener al menos 6 carácteres']); exit(); } if ($contraseña !== $confirmar_contraseña) { echo json_encode(['success' => false, 'message' => 'Las contraseñas no coinciden']); exit(); } // Validar que el rol sea válido if (!in_array($rol, ['admin', 'cantina', 'cancha'])) { echo json_encode(['success' => false, 'message' => 'Rol inválido']); exit(); } // Verificar si el usuario ya existe $query = "SELECT ID_Usuario FROM usuarios WHERE Usuario = ?"; $stmt = $conexion->prepare($query); if (!$stmt) { echo json_encode(['success' => false, 'message' => 'Error en la consulta: ' . $conexion->error]); exit(); } $stmt->bind_param("s", $usuario); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows > 0) { echo json_encode(['success' => false, 'message' => 'El usuario ya existe']); $stmt->close(); exit(); } $stmt->close(); // Insertar el nuevo usuario $query = "INSERT INTO usuarios (Usuario, Contraseña, Rol, Nombre, Apellido, DNI, Correo, Telefono) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; $stmt = $conexion->prepare($query); if (!$stmt) { echo json_encode(['success' => false, 'message' => 'Error en la consulta: ' . $conexion->error]); exit(); } $stmt->bind_param("ssssssss", $usuario, $contraseña, $rol, $nombre, $apellido, $dni, $correo, $telefono); if ($stmt->execute()) { echo json_encode(['success' => true, 'message' => 'Usuario registrado exitosamente', 'id' => $stmt->insert_id]); } else { echo json_encode(['success' => false, 'message' => 'Error al registrar el usuario: ' . $stmt->error]); } $stmt->close(); $conexion->close(); ?>