home
/
u529748449
/
domains
/
borabilhete.com
/
public_html
/
admin
➕ New
📤 Upload
✎ Editing:
excluir_evento.php
← Back
<?php // admin/excluir_evento.php require_once __DIR__ . '/conexao.php'; require_once __DIR__ . '/auth.php'; error_reporting(E_ALL); ini_set('display_errors', 1); date_default_timezone_set('America/Sao_Paulo'); // Somente admin e produtor require_login(['admin','produtor']); if (($_SESSION['role'] ?? '') === 'agente') { header('Location: validar_ingresso.php'); exit; } $isAdmin = (($_SESSION['role'] ?? '') === 'admin'); $ownerId = (int)($_SESSION['produtor_id'] ?? 0); // Sanitiza ID $id = (isset($_GET['id']) && ctype_digit($_GET['id'])) ? (int)$_GET['id'] : 0; if ($id <= 0) { http_response_code(400); exit("ID do evento não informado."); } // ---- Carrega o evento já com ESCOPO (permissão) ---- if ($isAdmin) { $sql = "SELECT id, nome, slug, produtor_id FROM eventos WHERE id = ? LIMIT 1"; $st = $conn->prepare($sql); $st->bind_param('i', $id); } else { $sql = "SELECT id, nome, slug, produtor_id FROM eventos WHERE id = ? AND produtor_id = ? LIMIT 1"; $st = $conn->prepare($sql); $st->bind_param('ii', $id, $ownerId); } $st->execute(); $evento = $st->get_result()->fetch_assoc(); $st->close(); if (!$evento) { http_response_code(403); exit("Você não tem permissão para excluir este evento ou ele não existe."); } // ---- Impede excluir se houver pedidos ---- $verificaPedidos = $conn->prepare("SELECT COUNT(*) AS total FROM pedidos WHERE id_evento = ?"); $verificaPedidos->bind_param("i", $id); $verificaPedidos->execute(); $totalPedidos = (int)$verificaPedidos->get_result()->fetch_assoc()['total']; $verificaPedidos->close(); if ($totalPedidos > 0) { echo "<p style='color:red;'>Este evento possui pedidos realizados e não pode ser excluído.</p>"; echo "<p><a href='listar_eventos.php'>← Voltar</a></p>"; exit; } // ---- Função de slug (fallback) ---- function gerarSlug($nome) { $nome = trim(mb_strtolower($nome, 'UTF-8')); $nome = strtr($nome, [ 'á'=>'a','à'=>'a','ã'=>'a','â'=>'a','ä'=>'a', 'é'=>'e','è'=>'e','ê'=>'e','ë'=>'e', 'í'=>'i','ì'=>'i','î'=>'i','ï'=>'i', 'ó'=>'o','ò'=>'o','õ'=>'o','ô'=>'o','ö'=>'o', 'ú'=>'u','ù'=>'u','û'=>'u','ü'=>'u', 'ñ'=>'n','ç'=>'c' ]); $nome = preg_replace('/[^a-z0-9]+/', '-', $nome); return trim($nome, '-'); } // ---- Remove página do evento (se existir) ---- $slug = $evento['slug'] ?: gerarSlug($evento['nome']); $arquivo = __DIR__ . "/../public/evento/{$slug}.php"; if (is_file($arquivo)) { @unlink($arquivo); } // ---- Exclui setores (opcional; FK ON DELETE CASCADE já cuida) ---- $stmtSetores = $conn->prepare("DELETE FROM setores WHERE id_evento = ?"); $stmtSetores->bind_param("i", $id); $stmtSetores->execute(); $stmtSetores->close(); // ---- Exclui o evento ---- $stmtEvento = $conn->prepare("DELETE FROM eventos WHERE id = ?"); $stmtEvento->bind_param("i", $id); $stmtEvento->execute(); $stmtEvento->close(); header("Location: listar_eventos.php"); exit;
💾 Save Changes
Cancel
📤 Upload File
×
Select File
Upload
Cancel
➕ Create New
×
Type
📄 File
📁 Folder
Name
Create
Cancel
✎ Rename Item
×
Current Name
New Name
Rename
Cancel
🔐 Change Permissions
×
Target File
Permission (e.g., 0755, 0644)
0755
0644
0777
Apply
Cancel