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/.cursor-server/data/User/History/-2a76b433/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/.cursor-server/data/User/History/-2a76b433/oI33.php
<?php
/**
 * Comprehensive Statistics Report
 * Analyzes your website's song generation and provides detailed insights
 */

require_once 'config/database.php';

$pdo = getDBConnection();

echo "<h1>🎵 SoundStudioPro - Comprehensive Statistics Report</h1>";
echo "<p><em>Generated on: " . date('Y-m-d H:i:s') . "</em></p>";

// Database Statistics
echo "<h2>🗄️ Database Statistics</h2>";

// Overall stats
$overall_stats = $pdo->query("
    SELECT 
        COUNT(*) as total_tracks,
        COUNT(CASE WHEN status = 'complete' THEN 1 END) as completed,
        COUNT(CASE WHEN status = 'processing' THEN 1 END) as processing,
        COUNT(CASE WHEN status = 'failed' THEN 1 END) as failed,
        COUNT(CASE WHEN metadata IS NOT NULL AND metadata != '' THEN 1 END) as with_metadata,
        COUNT(CASE WHEN task_id IS NOT NULL THEN 1 END) as with_task_id,
        COUNT(CASE WHEN user_id IS NOT NULL THEN 1 END) as with_user,
        COUNT(CASE WHEN user_id IS NULL THEN 1 END) as orphaned
    FROM music_tracks
")->fetch();

echo "<div style='display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 2rem;'>";
echo "<div style='background: #1a1a1a; padding: 1rem; border-radius: 8px; color: white;'>";
echo "<h3>Total Tracks</h3>";
echo "<div style='font-size: 2rem; font-weight: bold; color: #667eea;'>{$overall_stats['total_tracks']}</div>";
echo "</div>";

echo "<div style='background: #1a1a1a; padding: 1rem; border-radius: 8px; color: white;'>";
echo "<h3>Completed</h3>";
echo "<div style='font-size: 2rem; font-weight: bold; color: #48bb78;'>{$overall_stats['completed']}</div>";
echo "<div style='font-size: 0.9rem; color: #a0aec0;'>" . round(($overall_stats['completed'] / $overall_stats['total_tracks']) * 100, 1) . "% success rate</div>";
echo "</div>";

echo "<div style='background: #1a1a1a; padding: 1rem; border-radius: 8px; color: white;'>";
echo "<h3>Processing</h3>";
echo "<div style='font-size: 2rem; font-weight: bold; color: #f59e0b;'>{$overall_stats['processing']}</div>";
echo "</div>";

echo "<div style='background: #1a1a1a; padding: 1rem; border-radius: 8px; color: white;'>";
echo "<h3>Failed</h3>";
echo "<div style='font-size: 2rem; font-weight: bold; color: #f56565;'>{$overall_stats['failed']}</div>";
echo "</div>";

echo "<div style='background: #1a1a1a; padding: 1rem; border-radius: 8px; color: white;'>";
echo "<h3>With Metadata</h3>";
echo "<div style='font-size: 2rem; font-weight: bold; color: #667eea;'>{$overall_stats['with_metadata']}</div>";
echo "</div>";

echo "<div style='background: #1a1a1a; padding: 1rem; border-radius: 8px; color: white;'>";
echo "<h3>Orphaned</h3>";
echo "<div style='font-size: 2rem; font-weight: bold; color: #f56565;'>{$overall_stats['orphaned']}</div>";
echo "</div>";
echo "</div>";

// User Statistics
echo "<h2>👥 User Statistics</h2>";
$user_stats = $pdo->query("
    SELECT 
        COUNT(*) as total_users,
        COUNT(CASE WHEN is_admin = 1 THEN 1 END) as admin_users,
        COUNT(CASE WHEN plan = 'free' THEN 1 END) as free_users,
        COUNT(CASE WHEN plan = 'starter' THEN 1 END) as starter_users,
        COUNT(CASE WHEN plan = 'pro' THEN 1 END) as pro_users,
        SUM(credits) as total_credits,
        AVG(credits) as avg_credits
    FROM users
")->fetch();

echo "<div style='display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 2rem;'>";
echo "<div style='background: #1a1a1a; padding: 1rem; border-radius: 8px; color: white;'>";
echo "<h3>Total Users</h3>";
echo "<div style='font-size: 2rem; font-weight: bold; color: #667eea;'>{$user_stats['total_users']}</div>";
echo "</div>";

echo "<div style='background: #1a1a1a; padding: 1rem; border-radius: 8px; color: white;'>";
echo "<h3>Admin Users</h3>";
echo "<div style='font-size: 2rem; font-weight: bold; color: #f59e0b;'>{$user_stats['admin_users']}</div>";
echo "</div>";

echo "<div style='background: #1a1a1a; padding: 1rem; border-radius: 8px; color: white;'>";
echo "<h3>Premium Users</h3>";
echo "<div style='font-size: 2rem; font-weight: bold; color: #48bb78;'>" . ($user_stats['starter_users'] + $user_stats['pro_users']) . "</div>";
echo "<div style='font-size: 0.9rem; color: #a0aec0;'>Starter: {$user_stats['starter_users']} | Pro: {$user_stats['pro_users']}</div>";
echo "</div>";

echo "<div style='background: #1a1a1a; padding: 1rem; border-radius: 8px; color: white;'>";
echo "<h3>Total Credits</h3>";
echo "<div style='font-size: 2rem; font-weight: bold; color: #667eea;'>{$user_stats['total_credits']}</div>";
echo "<div style='font-size: 0.9rem; color: #a0aec0;'>Avg: " . round($user_stats['avg_credits'], 1) . "</div>";
echo "</div>";
echo "</div>";

// Top Users by Track Count
echo "<h2>🏆 Top Users by Track Generation</h2>";
$top_users = $pdo->query("
    SELECT 
        u.name,
        u.email,
        u.plan,
        COUNT(mt.id) as track_count,
        COUNT(CASE WHEN mt.status = 'complete' THEN 1 END) as completed_count,
        COUNT(CASE WHEN mt.status = 'failed' THEN 1 END) as failed_count,
        u.credits,
        u.created_at
    FROM users u
    LEFT JOIN music_tracks mt ON u.id = mt.user_id
    GROUP BY u.id, u.name, u.email, u.plan, u.credits, u.created_at
    HAVING track_count > 0
    ORDER BY track_count DESC
    LIMIT 10
")->fetchAll();

echo "<table style='width: 100%; border-collapse: collapse; background: #1a1a1a; color: white; border-radius: 8px; overflow: hidden;'>";
echo "<thead style='background: #2a2a2a;'>";
echo "<tr>";
echo "<th style='padding: 1rem; text-align: left;'>User</th>";
echo "<th style='padding: 1rem; text-align: left;'>Plan</th>";
echo "<th style='padding: 1rem; text-align: center;'>Total Tracks</th>";
echo "<th style='padding: 1rem; text-align: center;'>Completed</th>";
echo "<th style='padding: 1rem; text-align: center;'>Failed</th>";
echo "<th style='padding: 1rem; text-align: center;'>Credits</th>";
echo "<th style='padding: 1rem; text-align: left;'>Joined</th>";
echo "</tr>";
echo "</thead>";
echo "<tbody>";

foreach ($top_users as $user) {
    $success_rate = $user['track_count'] > 0 ? round(($user['completed_count'] / $user['track_count']) * 100, 1) : 0;
    echo "<tr style='border-bottom: 1px solid #333;'>";
    echo "<td style='padding: 1rem;'>";
    echo "<div style='font-weight: bold;'>{$user['name']}</div>";
    echo "<div style='font-size: 0.9rem; color: #a0aec0;'>{$user['email']}</div>";
    echo "</td>";
    echo "<td style='padding: 1rem;'>";
    echo "<span style='padding: 0.3rem 0.8rem; border-radius: 12px; font-size: 0.8rem; background: " . 
         ($user['plan'] === 'pro' ? '#764ba2' : ($user['plan'] === 'starter' ? '#667eea' : '#a0aec0')) . 
         "; color: white;'>{$user['plan']}</span>";
    echo "</td>";
    echo "<td style='padding: 1rem; text-align: center; font-weight: bold;'>{$user['track_count']}</td>";
    echo "<td style='padding: 1rem; text-align: center; color: #48bb78;'>{$user['completed_count']}</td>";
    echo "<td style='padding: 1rem; text-align: center; color: #f56565;'>{$user['failed_count']}</td>";
    echo "<td style='padding: 1rem; text-align: center;'>{$user['credits']}</td>";
    echo "<td style='padding: 1rem;'>" . date('M j, Y', strtotime($user['created_at'])) . "</td>";
    echo "</tr>";
}
echo "</tbody>";
echo "</table>";

// Recent Activity
echo "<h2>📈 Recent Activity (Last 7 Days)</h2>";
$recent_activity = $pdo->query("
    SELECT 
        DATE(created_at) as date,
        COUNT(*) as total_created,
        COUNT(CASE WHEN status = 'complete' THEN 1 END) as completed,
        COUNT(CASE WHEN status = 'failed' THEN 1 END) as failed
    FROM music_tracks
    WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)
    GROUP BY DATE(created_at)
    ORDER BY date DESC
")->fetchAll();

echo "<table style='width: 100%; border-collapse: collapse; background: #1a1a1a; color: white; border-radius: 8px; overflow: hidden;'>";
echo "<thead style='background: #2a2a2a;'>";
echo "<tr>";
echo "<th style='padding: 1rem; text-align: left;'>Date</th>";
echo "<th style='padding: 1rem; text-align: center;'>Tracks Created</th>";
echo "<th style='padding: 1rem; text-align: center;'>Completed</th>";
echo "<th style='padding: 1rem; text-align: center;'>Failed</th>";
echo "<th style='padding: 1rem; text-align: center;'>Success Rate</th>";
echo "</tr>";
echo "</thead>";
echo "<tbody>";

foreach ($recent_activity as $day) {
    $success_rate = $day['total_created'] > 0 ? round(($day['completed'] / $day['total_created']) * 100, 1) : 0;
    echo "<tr style='border-bottom: 1px solid #333;'>";
    echo "<td style='padding: 1rem;'>" . date('M j, Y', strtotime($day['date'])) . "</td>";
    echo "<td style='padding: 1rem; text-align: center; font-weight: bold;'>{$day['total_created']}</td>";
    echo "<td style='padding: 1rem; text-align: center; color: #48bb78;'>{$day['completed']}</td>";
    echo "<td style='padding: 1rem; text-align: center; color: #f56565;'>{$day['failed']}</td>";
    echo "<td style='padding: 1rem; text-align: center; color: " . ($success_rate >= 80 ? '#48bb78' : ($success_rate >= 60 ? '#f59e0b' : '#f56565')) . ";'>{$success_rate}%</td>";
    echo "</tr>";
}
echo "</tbody>";
echo "</table>";

// File System Analysis
echo "<h2>📁 File System Analysis</h2>";

// Count result files
$result_files = glob('task_results/*.json');
$result_count = count($result_files);

// Count audio files
$audio_files = glob('uploads/*.mp3');
$audio_count = count($audio_files);

echo "<div style='display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 2rem;'>";
echo "<div style='background: #1a1a1a; padding: 1rem; border-radius: 8px; color: white;'>";
echo "<h3>API Result Files</h3>";
echo "<div style='font-size: 2rem; font-weight: bold; color: #667eea;'>{$result_count}</div>";
echo "<div style='font-size: 0.9rem; color: #a0aec0;'>JSON files in task_results/</div>";
echo "</div>";

echo "<div style='background: #1a1a1a; padding: 1rem; border-radius: 8px; color: white;'>";
echo "<h3>Audio Files</h3>";
echo "<div style='font-size: 2rem; font-weight: bold; color: #48bb78;'>{$audio_count}</div>";
echo "<div style='font-size: 0.9rem; color: #a0aec0;'>MP3 files in uploads/</div>";
echo "</div>";
echo "</div>";

// Track Analysis by Status
echo "<h2>🎵 Track Analysis by Status</h2>";
$status_analysis = $pdo->query("
    SELECT 
        status,
        COUNT(*) as count,
        AVG(TIMESTAMPDIFF(MINUTE, created_at, 
            CASE WHEN status = 'complete' THEN updated_at ELSE NOW() END
        )) as avg_duration_minutes,
        MIN(created_at) as first_created,
        MAX(created_at) as last_created
    FROM music_tracks
    GROUP BY status
    ORDER BY count DESC
")->fetchAll();

echo "<table style='width: 100%; border-collapse: collapse; background: #1a1a1a; color: white; border-radius: 8px; overflow: hidden;'>";
echo "<thead style='background: #2a2a2a;'>";
echo "<tr>";
echo "<th style='padding: 1rem; text-align: left;'>Status</th>";
echo "<th style='padding: 1rem; text-align: center;'>Count</th>";
echo "<th style='padding: 1rem; text-align: center;'>Percentage</th>";
echo "<th style='padding: 1rem; text-align: center;'>Avg Duration</th>";
echo "<th style='padding: 1rem; text-align: left;'>First Created</th>";
echo "<th style='padding: 1rem; text-align: left;'>Last Created</th>";
echo "</tr>";
echo "</thead>";
echo "<tbody>";

foreach ($status_analysis as $status) {
    $percentage = round(($status['count'] / $overall_stats['total_tracks']) * 100, 1);
    $color = $status['status'] === 'complete' ? '#48bb78' : 
             ($status['status'] === 'processing' ? '#f59e0b' : '#f56565');
    
    echo "<tr style='border-bottom: 1px solid #333;'>";
    echo "<td style='padding: 1rem;'>";
    echo "<span style='padding: 0.3rem 0.8rem; border-radius: 12px; font-size: 0.8rem; background: {$color}; color: white;'>{$status['status']}</span>";
    echo "</td>";
    echo "<td style='padding: 1rem; text-align: center; font-weight: bold;'>{$status['count']}</td>";
    echo "<td style='padding: 1rem; text-align: center;'>{$percentage}%</td>";
    echo "<td style='padding: 1rem; text-align: center;'>" . round($status['avg_duration_minutes'], 1) . " min</td>";
    echo "<td style='padding: 1rem;'>" . date('M j, Y', strtotime($status['first_created'])) . "</td>";
    echo "<td style='padding: 1rem;'>" . date('M j, Y', strtotime($status['last_created'])) . "</td>";
    echo "</tr>";
}
echo "</tbody>";
echo "</table>";

// Summary
echo "<h2>📋 Executive Summary</h2>";
echo "<div style='background: #1a1a1a; padding: 2rem; border-radius: 8px; color: white;'>";
echo "<h3>🎯 Key Metrics</h3>";
echo "<ul style='font-size: 1.1rem; line-height: 1.8;'>";
echo "<li><strong>Total Songs Generated:</strong> {$overall_stats['total_tracks']}</li>";
echo "<li><strong>Success Rate:</strong> " . round(($overall_stats['completed'] / $overall_stats['total_tracks']) * 100, 1) . "%</li>";
echo "<li><strong>Active Users:</strong> {$user_stats['total_users']}</li>";
echo "<li><strong>Premium Users:</strong> " . ($user_stats['starter_users'] + $user_stats['pro_users']) . " (" . round((($user_stats['starter_users'] + $user_stats['pro_users']) / $user_stats['total_users']) * 100, 1) . "%)</li>";
echo "<li><strong>Total Credits Available:</strong> {$user_stats['total_credits']}</li>";
echo "<li><strong>API Result Files:</strong> {$result_count}</li>";
echo "<li><strong>Orphaned Tracks:</strong> {$overall_stats['orphaned']}</li>";
echo "</ul>";

echo "<h3>🚀 Recommendations</h3>";
echo "<ul style='font-size: 1.1rem; line-height: 1.8;'>";
if ($overall_stats['failed'] > 0) {
    echo "<li>🔧 <strong>Fix Failed Tracks:</strong> {$overall_stats['failed']} tracks failed and need attention</li>";
}
if ($overall_stats['orphaned'] > 0) {
    echo "<li>👥 <strong>Assign Orphaned Tracks:</strong> {$overall_stats['orphaned']} tracks have no user assignment</li>";
}
if ($overall_stats['processing'] > 0) {
    echo "<li>⏳ <strong>Monitor Processing:</strong> {$overall_stats['processing']} tracks are currently processing</li>";
}
if (($user_stats['starter_users'] + $user_stats['pro_users']) < $user_stats['total_users'] * 0.3) {
    echo "<li>💰 <strong>Increase Premium Conversion:</strong> Only " . round((($user_stats['starter_users'] + $user_stats['pro_users']) / $user_stats['total_users']) * 100, 1) . "% of users are premium</li>";
}
echo "</ul>";
echo "</div>";

echo "<p style='text-align: center; margin-top: 2rem; color: #a0aec0;'><em>Report generated on " . date('Y-m-d H:i:s') . "</em></p>";
?> 

CasperSecurity Mini