home
/
u529748449
/
domains
/
borabilhete.com
/
public_html
/
admin
➕ New
📤 Upload
✎ Editing:
validar_ingresso.php
← Back
<?php require_once __DIR__.'/auth.php'; require_login(['admin','produtor','agente']); // agente permitido session_start(); if (!isset($_SESSION['produtor_logado'])) { header('Location: login_produtor.php'); exit; } ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <title>Validador de Ingressos</title> <script src="https://unpkg.com/html5-qrcode" type="text/javascript"></script> <style> body { font-family: Arial, sans-serif; padding: 20px; background: #f0f0f0; text-align: center; } h2 { margin-bottom: 20px; } #reader { width: 100%; max-width: 400px; margin: auto; } #result { margin-top: 20px; font-size: 18px; } .btn { padding: 10px 15px; background-color: #007bff; color: #fff; border: none; margin: 10px; border-radius: 5px; cursor: pointer; } .btn:hover { background-color: #0056b3; } select, input[type="text"] { padding: 7px; font-size: 16px; margin: 5px; width: 90%; max-width: 400px; } </style> </head> <body> <h2>đŤ Validação de Ingressos</h2> <div id="reader"></div> <div> <label for="camera-select">Selecionar câmera:</label> <select id="camera-select"></select> <button class="btn" onclick="trocarCamera()">Trocar Câmera</button> </div> <hr style="margin: 30px 0;"> <h3>Ou digite o cĂłdigo manualmente:</h3> <input type="text" id="input-manual" placeholder="token=...&setor=...&ingresso=..." /> <br> <button class="btn" onclick="validarManual()">Validar</button> <div id="result"></div> <script> let html5QrCode; let cameras = []; let cameraSelect = document.getElementById('camera-select'); const resultEl = document.getElementById("result"); const config = { fps: 10, qrbox: 250 }; function showMessage(msg) { const bg = msg.includes("â ") ? "#d4edda" : msg.includes("â ď¸") ? "#fff3cd" : "#f8d7da"; const color = msg.includes("â ") ? "#155724" : msg.includes("â ď¸") ? "#856404" : "#721c24"; const border = msg.includes("â ") ? "#c3e6cb" : msg.includes("â ď¸") ? "#ffeeba" : "#f5c6cb"; resultEl.innerHTML = `<div style="margin-top:20px;padding:15px;border-radius:8px; background:${bg};color:${color};border:1px solid ${border};"> ${msg || "â Erro: resposta vazia do servidor."} </div>`; } function validarLink(link) { try { const params = new URLSearchParams(link); const token = params.get("token"); const setor = params.get("setor"); const ingresso = params.get("ingresso"); if (!token || !setor || !ingresso) { showMessage("â Link invĂĄlido. Verifique os parâmetros."); return; } fetch(`processar_validacao.php?token=${encodeURIComponent(token)}&setor=${setor}&ingresso=${ingresso}`) .then(res => res.text()) .then(msg => { msg = msg.trim(); if (!msg) { showMessage("â Erro: resposta vazia do servidor."); } else { showMessage(msg); } if (html5QrCode) { setTimeout(() => { html5QrCode.start(cameraSelect.value, config, onScanSuccess); resultEl.innerHTML = ""; }, 4000); } }) .catch(err => { showMessage("â Erro ao processar validação."); console.error(err); }); } catch (e) { showMessage("â Erro ao processar link."); } } function onScanSuccess(decodedText) { if (html5QrCode) html5QrCode.stop(); validarLink(decodedText); } function trocarCamera() { const selectedId = cameraSelect.value; if (selectedId && html5QrCode) { html5QrCode.stop().then(() => { html5QrCode.start(selectedId, config, onScanSuccess); }); } } function validarManual() { const entrada = document.getElementById('input-manual').value.trim(); if (entrada === "") { showMessage("â Por favor, insira os dados."); return; } validarLink(entrada); } Html5Qrcode.getCameras().then(devices => { if (devices.length === 0) { alert("Nenhuma câmera foi encontrada."); return; } cameras = devices; html5QrCode = new Html5Qrcode("reader"); devices.forEach((device, index) => { const option = document.createElement("option"); option.value = device.id; option.text = device.label || `Câmera ${index + 1}`; cameraSelect.appendChild(option); }); let defaultCameraId = devices[0].id; for (let device of devices) { if (/back|traseira|environment/i.test(device.label)) { defaultCameraId = device.id; break; } } cameraSelect.value = defaultCameraId; html5QrCode.start(defaultCameraId, config, onScanSuccess); }).catch(err => { console.error("Erro ao acessar câmera:", err); alert("Erro ao acessar câmera: " + err); }); </script> </body> </html>
💾 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