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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/soundstudiopro.com/private_html/audit_track_click_flow.php
<?php
// Audit Track Click Flow
// This file traces exactly what happens when clicking a track title from the community page

session_start();
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Audit Track Click Flow</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; background: #f5f5f5; }
        .audit-section { margin: 20px 0; padding: 20px; border: 1px solid #ddd; border-radius: 8px; background: white; }
        .audit-button { 
            background: #667eea; color: white; padding: 10px 20px; 
            border: none; border-radius: 5px; cursor: pointer; margin: 5px;
        }
        .audit-button:hover { background: #5a6fd8; }
        .audit-result { margin: 10px 0; padding: 10px; border-radius: 5px; }
        .success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
        .error { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
        .info { background: #d1ecf1; color: #0c5460; border: 1px solid #bee5eb; }
        .warning { background: #fff3cd; color: #856404; border: 1px solid #ffeaa7; }
        .flow-diagram { 
            background: #f8f9fa; border: 1px solid #dee2e6; 
            padding: 20px; border-radius: 8px; margin: 20px 0;
            font-family: monospace; line-height: 1.6;
        }
        .step { margin: 10px 0; padding: 10px; background: #e9ecef; border-radius: 5px; }
        .step-number { background: #667eea; color: white; padding: 2px 8px; border-radius: 12px; margin-right: 10px; }
        .test-area { 
            min-height: 300px; border: 2px dashed #ccc; 
            padding: 20px; margin: 20px 0; border-radius: 8px; background: white;
        }
    </style>
</head>
<body>
    <h1>๐Ÿ” Audit Track Click Flow</h1>
    
    <div class="audit-section">
        <h2>๐Ÿ“‹ Flow Overview</h2>
        <div class="flow-diagram">
            <div class="step">
                <span class="step-number">1</span>
                <strong>User clicks track title</strong> in community page card
            </div>
            <div class="step">
                <span class="step-number">2</span>
                <strong>Link href:</strong> <code>/track.php?id=TRACK_ID</code>
            </div>
            <div class="step">
                <span class="step-number">3</span>
                <strong>AJAX Navigation intercepts</strong> click (if enabled)
            </div>
            <div class="step">
                <span class="step-number">4</span>
                <strong>shouldHandleWithAjax()</strong> checks if <code>/track.php</code> is in ajaxPages array
            </div>
            <div class="step">
                <span class="step-number">5</span>
                <strong>navigateToPage()</strong> calls <code>/ajax_load_page.php?page=track&id=TRACK_ID</code>
            </div>
            <div class="step">
                <span class="step-number">6</span>
                <strong>ajax_load_page.php</strong> includes <code>track.php</code> with <code>$_GET['ajax'] = '1'</code>
            </div>
            <div class="step">
                <span class="step-number">7</span>
                <strong>track.php</strong> detects AJAX request and outputs content without HTML structure
            </div>
            <div class="step">
                <span class="step-number">8</span>
                <strong>Content cleaning</strong> removes any remaining HTML structure elements
            </div>
            <div class="step">
                <span class="step-number">9</span>
                <strong>updatePageContent()</strong> injects cleaned content into existing page
            </div>
        </div>
    </div>
    
    <div class="audit-section">
        <h2>๐Ÿ”ง Test Controls</h2>
        <p>Test each step of the track click flow:</p>
        <button class="audit-button" onclick="testTrackAjaxLoad()">๐ŸŽต Test Track AJAX Load</button>
        <button class="audit-button" onclick="testTrackDirectLoad()">๐Ÿ“„ Test Track Direct Load</button>
        <button class="audit-button" onclick="checkAjaxNavigation()">๐Ÿงญ Check AJAX Navigation</button>
        <button class="audit-button" onclick="simulateTrackClick()">๐Ÿ–ฑ๏ธ Simulate Track Click</button>
        <button class="audit-button" onclick="clearTestArea()">๐Ÿ—‘๏ธ Clear Test Area</button>
    </div>
    
    <div class="audit-section">
        <h2>๐Ÿ“Š Current Status</h2>
        <div id="statusDisplay">
            <p><strong>AJAX Navigation:</strong> <span id="ajaxStatus">Checking...</span></p>
            <p><strong>Track.php in allowed pages:</strong> <span id="trackAllowedStatus">Checking...</span></p>
            <p><strong>Track.php in ajaxPages array:</strong> <span id="trackAjaxStatus">Checking...</span></p>
            <p><strong>Track.php parsing:</strong> <span id="trackParsingStatus">Checking...</span></p>
        </div>
    </div>
    
    <div class="audit-section">
        <h2>๐Ÿงช Test Area</h2>
        <p>Test results and content will appear here:</p>
        <div id="testArea" class="test-area">
            <p style="color: #666; text-align: center;">Click a test button above to start...</p>
        </div>
    </div>
    
    <div class="audit-section">
        <h2>๐Ÿ“‹ Audit Results</h2>
        <div id="auditResults"></div>
    </div>

    <script>
        function logAudit(message, type = 'info') {
            const results = document.getElementById('auditResults');
            const div = document.createElement('div');
            div.className = `audit-result ${type}`;
            div.innerHTML = `[${new Date().toLocaleTimeString()}] ${message}`;
            results.appendChild(div);
            results.scrollTop = results.scrollHeight;
        }
        
        function clearTestArea() {
            document.getElementById('testArea').innerHTML = '<p style="color: #666; text-align: center;">Test area cleared...</p>';
            logAudit('Test area cleared');
        }
        
        function updateStatus() {
            // Check AJAX Navigation
            if (typeof window.ajaxNavigation !== 'undefined') {
                document.getElementById('ajaxStatus').textContent = 'โœ… Available';
            } else {
                document.getElementById('ajaxStatus').textContent = 'โŒ Not Available';
            }
            
            // Check if track.php is in allowed pages (we know it is from our code)
            document.getElementById('trackAllowedStatus').textContent = 'โœ… Yes (track => track.php)';
            
            // Check if /track.php is in ajaxPages array
            if (typeof window.shouldHandleWithAjax === 'function') {
                const isTrackAjax = window.shouldHandleWithAjax('/track.php?id=123');
                document.getElementById('trackAjaxStatus').textContent = isTrackAjax ? 'โœ… Yes' : 'โŒ No';
            } else {
                document.getElementById('trackAjaxStatus').textContent = 'โŒ Function not available';
            }
            
            // Check track parsing
            if (typeof window.parsePageURL === 'function') {
                const trackParse = window.parsePageURL('/track.php?id=123');
                document.getElementById('trackParsingStatus').textContent = trackParse.pageType === 'track' ? 'โœ… Yes (track)' : 'โŒ No';
            } else {
                document.getElementById('trackParsingStatus').textContent = 'โŒ Function not available';
            }
        }
        
        function testTrackAjaxLoad() {
            logAudit('๐ŸŽต Testing track.php AJAX load...', 'info');
            
            const testArea = document.getElementById('testArea');
            testArea.innerHTML = '<p style="color: #666; text-align: center;">Loading track via AJAX...</p>';
            
            // Test with a sample track ID
            fetch('/ajax_load_page.php?page=track&id=123')
                .then(response => {
                    logAudit(`๐Ÿ“ก Response status: ${response.status}`, 'info');
                    return response.json();
                })
                .then(data => {
                    if (data.success) {
                        testArea.innerHTML = data.content;
                        logAudit('โœ… Track loaded successfully via AJAX', 'success');
                        logAudit(`๐Ÿ“Š Content length: ${data.content.length} characters`, 'success');
                        logAudit(`๐Ÿ“„ Page: ${data.page}`, 'success');
                        
                        // Check for potential issues
                        checkTrackContentForIssues(data.content);
                        
                    } else {
                        logAudit(`โŒ Track AJAX load failed: ${data.error}`, 'error');
                        testArea.innerHTML = `<div style="background: #f8d7da; color: #721c24; padding: 15px; border-radius: 5px;"><h3>Error:</h3><p>${data.error}</p></div>`;
                    }
                })
                .catch(error => {
                    logAudit(`โŒ Track AJAX request failed: ${error.message}`, 'error');
                    testArea.innerHTML = `<div style="background: #f8d7da; color: #721c24; padding: 15px; border-radius: 5px;"><h3>Request Error:</h3><p>${error.message}</p></div>`;
                });
        }
        
        function testTrackDirectLoad() {
            logAudit('๐Ÿ“„ Testing track.php direct load...', 'info');
            
            // Open track page in new tab
            window.open('/track.php?id=123', '_blank');
            logAudit('๐Ÿ“„ Track page opened in new tab for comparison', 'info');
        }
        
        function checkAjaxNavigation() {
            logAudit('๐Ÿงญ Checking AJAX navigation system...', 'info');
            
            // Check if AJAX navigation is available
            if (typeof window.ajaxNavigation !== 'undefined') {
                logAudit('โœ… AJAX navigation object available', 'success');
                
                // Check if track links should be handled with AJAX
                if (typeof window.shouldHandleWithAjax === 'function') {
                    const trackLink = '/track.php?id=123';
                    const shouldUseAjax = window.shouldHandleWithAjax(trackLink);
                    logAudit(`๐Ÿ”— Track link "${trackLink}" should use AJAX: ${shouldUseAjax ? 'Yes' : 'No'}`, shouldUseAjax ? 'success' : 'warning');
                } else {
                    logAudit('โŒ shouldHandleWithAjax function not available', 'error');
                }
                
                // Check URL parsing
                if (typeof window.parsePageURL === 'function') {
                    const trackParse = window.parsePageURL('/track.php?id=123');
                    logAudit(`๐Ÿ” Track URL parsing: pageType=${trackParse.pageType}, params=${JSON.stringify(trackParse.params)}`, 'info');
                } else {
                    logAudit('โŒ parsePageURL function not available', 'error');
                }
                
            } else {
                logAudit('โŒ AJAX navigation object not available', 'error');
            }
        }
        
        function simulateTrackClick() {
            logAudit('๐Ÿ–ฑ๏ธ Simulating track title click...', 'info');
            
            // Create a test track link
            const testLink = document.createElement('a');
            testLink.href = '/track.php?id=123';
            testLink.textContent = 'Test Track Title';
            testLink.className = 'track-link';
            testLink.style.display = 'inline-block';
            testLink.style.padding = '10px';
            testLink.style.background = '#667eea';
            testLink.style.color = 'white';
            testLink.style.textDecoration = 'none';
            testLink.style.borderRadius = '5px';
            testLink.style.margin = '10px';
            
            // Add click event listener to see what happens
            testLink.addEventListener('click', function(e) {
                logAudit('๐Ÿ–ฑ๏ธ Track link clicked!', 'success');
                logAudit(`๐Ÿ”— Href: ${this.href}`, 'info');
                
                // Check if this should be handled with AJAX
                if (typeof window.shouldHandleWithAjax === 'function') {
                    const shouldUseAjax = window.shouldHandleWithAjax(this.href);
                    logAudit(`๐Ÿงญ Should use AJAX: ${shouldUseAjax ? 'Yes' : 'No'}`, shouldUseAjax ? 'success' : 'warning');
                    
                    if (shouldUseAjax) {
                        logAudit('โœ… Link will be handled by AJAX navigation', 'success');
                    } else {
                        logAudit('โš ๏ธ Link will use normal navigation (fallback)', 'warning');
                    }
                } else {
                    logAudit('โŒ Cannot determine AJAX handling - function not available', 'error');
                }
            });
            
            // Add to test area
            const testArea = document.getElementById('testArea');
            testArea.innerHTML = '<h3>Test Track Link:</h3>';
            testArea.appendChild(testLink);
            testArea.innerHTML += '<p>Click the link above to test the click handling...</p>';
        }
        
        function checkTrackContentForIssues(content) {
            logAudit('๐Ÿ” Checking track content for potential issues...', 'info');
            
            // Check for HTML structure issues
            if (content.includes('<html')) {
                logAudit('โš ๏ธ Content contains <html> tags (may cause conflicts)', 'warning');
            }
            
            if (content.includes('<head')) {
                logAudit('โš ๏ธ Content contains <head> tags (may cause conflicts)', 'warning');
            }
            
            if (content.includes('<body')) {
                logAudit('โš ๏ธ Content contains <body> tags (may cause conflicts)', 'warning');
            }
            
            // Check for header/nav issues
            if (content.includes('<header')) {
                logAudit('โš ๏ธ Content contains <header> tags (may cause conflicts)', 'warning');
            }
            
            if (content.includes('<nav')) {
                logAudit('โš ๏ธ Content contains <nav> tags (may cause conflicts)', 'warning');
            }
            
            // Check for script issues
            if (content.includes('<script')) {
                logAudit('โš ๏ธ Content contains <script> tags (may cause conflicts)', 'warning');
            }
            
            // Check for global player conflicts
            if (content.includes('enhancedGlobalPlayer')) {
                logAudit('โš ๏ธ Content contains global player elements (may cause conflicts)', 'warning');
            }
            
            // Check for large content
            if (content.length > 100000) {
                logAudit(`โš ๏ธ Content is very large (${content.length} chars) - may cause performance issues`, 'warning');
            }
            
            // Check for track-specific content
            if (content.includes('track')) {
                logAudit('โœ… Content appears to contain track-related information', 'success');
            }
        }
        
        // Auto-update status and run initial checks
        window.addEventListener('load', function() {
            logAudit('๐Ÿš€ Page loaded, starting audit...', 'success');
            updateStatus();
            
            // Auto-check AJAX navigation
            setTimeout(() => {
                logAudit('๐Ÿ”„ Auto-checking AJAX navigation system...', 'info');
                checkAjaxNavigation();
            }, 1000);
        });
        
        // Update status periodically
        setInterval(updateStatus, 10000);
    </script>
</body>
</html>

CasperSecurity Mini