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/radio/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/soundstudiopro.com/public_html/radio/subscription_success.php
<?php
// Error handling
error_reporting(E_ALL);
ini_set('display_errors', 0);
ini_set('log_errors', 1);

register_shutdown_function(function() {
    $error = error_get_last();
    if ($error && in_array($error['type'], [E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR])) {
        error_log("Fatal error in subscription_success.php: " . $error['message']);
        http_response_code(500);
        echo '<!DOCTYPE html><html><head><title>Error</title></head><body style="font-family: Arial; padding: 2rem; text-align: center;"><h1>Something went wrong</h1><p>Please try again later.</p><a href="/radio/dashboard/">Go to Dashboard</a></body></html>';
        exit;
    }
});

session_start();

try {
    require_once __DIR__ . '/../config/database.php';
    require_once __DIR__ . '/includes/functions.php';
} catch (Exception $e) {
    error_log("Error loading dependencies in subscription_success.php: " . $e->getMessage());
    http_response_code(500);
    die('Error loading page. Please contact support.');
}

$station_id = $_GET['station_id'] ?? $_SESSION['radio_station_id'] ?? null;

if (!$station_id) {
    header('Location: /radio/register.php');
    exit;
}

try {
    $station = getRadioStation($station_id);
    if (!$station) {
        header('Location: /radio/register.php');
        exit;
    }
    
    // Set session variables for dashboard access
    $_SESSION['radio_station_id'] = $station_id;
    $_SESSION['radio_station_name'] = $station['station_name'];
    $_SESSION['radio_station_email'] = $station['contact_email'];
    
} catch (Exception $e) {
    error_log("Subscription success error: " . $e->getMessage());
    // Don't redirect on error, show error message instead
    $error = "Error loading station: " . $e->getMessage();
}

$page_title = 'Subscription Success - SoundStudioPro';
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?= htmlspecialchars($page_title) ?></title>
    <link rel="stylesheet" href="/assets/css/main.css">
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
    <style>
        * {
            box-sizing: border-box;
        }
        body {
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            padding: 2rem 1rem;
        }
        .success-page {
            max-width: 700px;
            margin: 0 auto;
            padding: 3rem;
            background: rgba(255, 255, 255, 0.95);
            backdrop-filter: blur(20px);
            border-radius: 24px;
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
            text-align: center;
            animation: slideUp 0.6s ease-out;
        }
        @keyframes slideUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        .success-icon {
            font-size: 5rem;
            margin-bottom: 1.5rem;
            animation: scaleIn 0.6s ease-out 0.2s both;
        }
        @keyframes scaleIn {
            from {
                transform: scale(0);
            }
            to {
                transform: scale(1);
            }
        }
        .success-page h1 {
            font-size: 2.5rem;
            font-weight: 800;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            margin-bottom: 1rem;
        }
        .success-page > p {
            font-size: 1.1rem;
            color: #666;
            margin-bottom: 2rem;
        }
        .api-credentials {
            background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
            padding: 2rem;
            border-radius: 16px;
            margin: 2.5rem 0;
            text-align: left;
            border: 1px solid rgba(255, 255, 255, 0.5);
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
        }
        .api-credentials h3 {
            margin-top: 0;
            font-size: 1.5rem;
            font-weight: 700;
            color: #333;
            margin-bottom: 0.5rem;
        }
        .api-credentials > p {
            color: #555;
            margin-bottom: 1.5rem;
            font-size: 0.95rem;
        }
        .credential-item {
            margin-bottom: 1.5rem;
        }
        .credential-item:last-child {
            margin-bottom: 0;
        }
        .credential-item label {
            display: block;
            font-weight: 600;
            margin-bottom: 0.5rem;
            color: #333;
            font-size: 0.9rem;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .credential-item code {
            background: rgba(255, 255, 255, 0.9);
            padding: 1rem;
            border-radius: 12px;
            display: block;
            word-break: break-all;
            font-family: 'Monaco', 'Courier New', monospace;
            font-size: 0.85rem;
            color: #667eea;
            border: 2px solid rgba(102, 126, 234, 0.2);
            transition: all 0.3s ease;
            cursor: pointer;
            position: relative;
        }
        .credential-item code:hover {
            border-color: #667eea;
            background: rgba(255, 255, 255, 1);
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(102, 126, 234, 0.2);
        }
        .credential-item code::after {
            content: '📋';
            position: absolute;
            right: 1rem;
            opacity: 0;
            transition: opacity 0.3s;
        }
        .credential-item code:hover::after {
            opacity: 1;
        }
        .api-credentials small {
            display: block;
            margin-top: 1.5rem;
            padding-top: 1.5rem;
            border-top: 1px solid rgba(0, 0, 0, 0.1);
            color: #666;
            font-size: 0.85rem;
        }
        .api-credentials small code {
            background: transparent;
            padding: 0.25rem 0.5rem;
            border: none;
            display: inline;
            color: #667eea;
            font-size: 0.85rem;
        }
        .btn-primary {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 1rem 2.5rem;
            border: none;
            border-radius: 12px;
            font-size: 1.1rem;
            font-weight: 600;
            cursor: pointer;
            text-decoration: none;
            display: inline-block;
            margin-top: 1.5rem;
            box-shadow: 0 8px 24px rgba(102, 126, 234, 0.4);
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
        }
        .btn-primary::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            transition: left 0.5s;
        }
        .btn-primary:hover {
            transform: translateY(-2px);
            box-shadow: 0 12px 32px rgba(102, 126, 234, 0.5);
        }
        .btn-primary:hover::before {
            left: 100%;
        }
        .btn-primary:active {
            transform: translateY(0);
        }
        .error-message {
            background: linear-gradient(135deg, #fee 0%, #fcc 100%);
            color: #c33;
            padding: 1.25rem;
            border-radius: 12px;
            margin-bottom: 1.5rem;
            border: 2px solid rgba(204, 51, 51, 0.3);
            font-weight: 500;
        }
        @media (max-width: 768px) {
            .success-page {
                padding: 2rem 1.5rem;
            }
            .success-page h1 {
                font-size: 2rem;
            }
            .api-credentials {
                padding: 1.5rem;
            }
        }
    </style>
</head>
<body>
    <?php 
    // Try to include header, but don't fail if it doesn't exist
    $header_path = __DIR__ . '/../includes/header.php';
    if (file_exists($header_path)) {
        try {
            include $header_path;
        } catch (Exception $e) {
            error_log("Header include error: " . $e->getMessage());
            // Fallback minimal header
            echo '<header style="padding: 1rem; background: rgba(102, 126, 234, 0.1);"><a href="/" style="color: #667eea; text-decoration: none; font-weight: 600;">SoundStudioPro</a></header>';
        }
    } else {
        // Fallback minimal header
        echo '<header style="padding: 1rem; background: rgba(102, 126, 234, 0.1);"><a href="/" style="color: #667eea; text-decoration: none; font-weight: 600;">SoundStudioPro</a></header>';
    }
    ?>
    
    <div class="success-page">
        <?php if (isset($error)): ?>
            <div class="error-message">
                <strong>⚠️ Error:</strong> <?= htmlspecialchars($error) ?>
            </div>
        <?php endif; ?>
        
        <div class="success-icon">🎉</div>
        <h1>Subscription Activated!</h1>
        <p>Your radio station subscription has been successfully activated. You're all set to start broadcasting!</p>
        
        <?php if (isset($_SESSION['radio_api_key'])): ?>
        <div class="api-credentials">
            <h3>Your API Credentials</h3>
            <p><strong>Save these credentials securely!</strong> You'll need them to integrate with your broadcast software.</p>
            
            <div class="credential-item">
                <label>API Key:</label>
                <code><?= htmlspecialchars($_SESSION['radio_api_key']) ?></code>
            </div>
            
            <div class="credential-item">
                <label>API Secret:</label>
                <code><?= htmlspecialchars($_SESSION['radio_api_secret']) ?></code>
            </div>
            
            <p><small>Use these in the Authorization header: <code>Bearer {api_key}:{api_secret}</code></small></p>
        </div>
        <?php endif; ?>
        
        <a href="/radio/dashboard/" class="btn-primary">Go to Dashboard</a>
    </div>
    
    <?php 
    // Try to include footer, but don't fail if it doesn't exist
    $footer_path = __DIR__ . '/../includes/footer.php';
    if (file_exists($footer_path)) {
        try {
            include $footer_path;
        } catch (Exception $e) {
            error_log("Footer include error: " . $e->getMessage());
        }
    }
    ?>
</body>
</html>


CasperSecurity Mini