home
/
u529748449
/
domains
/
borabilhete.com
/
public_html
/
admin
➕ New
📤 Upload
✎ Editing:
processar_validacao.php
← Back
<?php require_once '../admin/conexao.php'; header('Content-Type: text/plain'); // Ativa exibição de erros ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); // 1. Coleta os dados do QR Code $token = $_GET['token'] ?? ''; $id_setor = intval($_GET['setor'] ?? 0); $numero_ingresso = intval($_GET['ingresso'] ?? 0); if (!$token || $id_setor <= 0 || $numero_ingresso <= 0) { exit("❌ Dados inválidos no QR Code."); } // 2. Busca o pedido com esse token $stmt = $conn->prepare(" SELECT p.id AS id_pedido, p.nome_cliente, p.cpf, e.nome AS nome_evento FROM pedidos p JOIN eventos e ON e.id = p.id_evento WHERE p.token_seguro = ? AND p.status_pagamento = 'pago' "); if (!$stmt) { exit("❌ Erro ao preparar consulta do pedido."); } $stmt->bind_param("s", $token); $stmt->execute(); $result = $stmt->get_result(); $pedido = $result->fetch_assoc(); if (!$pedido) { exit("❌ Ingresso não encontrado ou ainda não está pago."); } $id_pedido = $pedido['id_pedido']; $cpf = $pedido['cpf'] ?? ''; $cliente = $pedido['nome_cliente']; // 3. Verifica se o ingresso existe e se ainda está disponível $stmtCheck = $conn->prepare(" SELECT quantidade FROM pedidos_itens WHERE id_pedido = ? AND id_setor = ? "); if (!$stmtCheck) { exit("❌ Erro ao verificar o setor do pedido."); } $stmtCheck->bind_param("ii", $id_pedido, $id_setor); $stmtCheck->execute(); $resCheck = $stmtCheck->get_result(); $ingresso = $resCheck->fetch_assoc(); if (!$ingresso) { exit("❌ Setor inválido para este pedido."); } $quantidade = intval($ingresso['quantidade']); if ($numero_ingresso > $quantidade) { exit("❌ Número do ingresso inválido. Máx: $quantidade"); } // 4. Verifica se já foi validado $stmtVerifica = $conn->prepare(" SELECT id, validado_em FROM validacoes WHERE token_seguro = ? AND id_setor = ? AND numero_ingresso = ? LIMIT 1 "); if (!$stmtVerifica) { exit("❌ Erro ao verificar validações anteriores."); } $stmtVerifica->bind_param("sii", $token, $id_setor, $numero_ingresso); $stmtVerifica->execute(); $resVerifica = $stmtVerifica->get_result(); if ($resVerifica->num_rows > 0) { $row = $resVerifica->fetch_assoc(); $data = date('d/m/Y H:i', strtotime($row['validado_em'])); exit("⚠️ Ingresso #$numero_ingresso já validado em $data."); } // 5. Registra a validação $stmtInsert = $conn->prepare(" INSERT INTO validacoes (id_pedido, token_seguro, id_setor, numero_ingresso, validado_em) VALUES (?, ?, ?, ?, NOW()) "); if (!$stmtInsert) { exit("❌ Erro ao registrar validação."); } $stmtInsert->bind_param("isii", $id_pedido, $token, $id_setor, $numero_ingresso); $stmtInsert->execute(); exit("✅ Ingresso #$numero_ingresso validado com sucesso!\nCliente: $cliente");
💾 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