false, 'error' => 'Cuerpo vacío o no se envió JSON']); exit; } $data = json_decode($json, true); if (!is_array($data) || json_last_error() !== JSON_ERROR_NONE) { $rawPreview = substr($json, 0, 200); echo json_encode([ 'success' => false, 'error' => 'JSON inválido en la solicitud', 'detalle' => json_last_error_msg(), 'raw' => $rawPreview, 'raw_hex' => bin2hex(substr($json, 0, 50)) ]); exit; } if (!isset($data['id_reserva']) || !isset($data['fecha_hora'])) { echo json_encode(['success' => false, 'error' => 'Datos incompletos']); exit; } $id_reserva = intval($data['id_reserva']); $fecha_hora = $conexion->real_escape_string($data['fecha_hora']); // Validación básica de formato YYYY-MM-DD HH:MM:SS if (!preg_match('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/', $fecha_hora)) { echo json_encode(['success' => false, 'error' => 'Formato de fecha_hora inválido. Use YYYY-MM-DD HH:MM:SS']); exit; } $sql = "UPDATE reservas SET Fecha_Hora = '$fecha_hora' WHERE ID_Reserva = $id_reserva"; if (mysqli_query($conexion, $sql)) { echo json_encode(['success' => true, 'message' => 'Horario actualizado correctamente']); } else { echo json_encode(['success' => false, 'error' => mysqli_error($conexion)]); } mysqli_close($conexion); ?>