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/-109ca8d5/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/.cursor-server/data/User/History/-109ca8d5/F1pv.php
<?php
// Global Music Player - Simplified and Reliable
// This player will be included in the main layout and stay active during page navigation

// Prevent multiple includes
if (defined('GLOBAL_PLAYER_INCLUDED')) {
    return;
}
define('GLOBAL_PLAYER_INCLUDED', true);
?>

<!-- Global Music Player -->
<div id="globalMusicPlayer" class="global-music-player">
    <div class="player-container">
        <!-- Track Info -->
        <div class="track-info">
            <div class="track-details">
                <div class="track-title" id="globalTrackTitle">
                    Ready to Play
                </div>
                <div class="track-artist" id="globalTrackArtist">
                    <span id="globalTrackArtistName">Click preview to start</span>
                </div>
            </div>
        </div>

        <!-- Controls -->
        <div class="player-controls">
            <button class="control-btn" id="globalPrevBtn" title="Previous">
                <i class="fas fa-step-backward"></i>
            </button>
            <button class="control-btn play-btn" id="globalPlayBtn" title="Play/Pause">
                <i class="fas fa-play" id="globalPlayIcon"></i>
            </button>
            <button class="control-btn" id="globalStopBtn" title="Stop">
                <i class="fas fa-stop"></i>
            </button>
            <button class="control-btn" id="globalNextBtn" title="Next">
                <i class="fas fa-step-forward"></i>
            </button>
        </div>

        <!-- Progress Bar -->
        <div class="progress-container">
            <div class="progress-bar" id="globalProgressBar">
                <div class="progress-fill" id="globalProgressFill"></div>
            </div>
            <div class="time-display">
                <span id="globalCurrentTime">0:00</span>
                <span id="globalTotalTime">0:00</span>
            </div>
        </div>

        <!-- Volume Control -->
        <div class="volume-control">
            <i class="fas fa-volume-up" id="globalVolumeIcon"></i>
            <input type="range" id="globalVolumeSlider" min="0" max="100" value="50" class="volume-slider">
        </div>
    </div>
</div>

<style>
/* Global Music Player Styles */
.global-music-player {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    background: rgba(10, 10, 10, 0.95) !important;
    backdrop-filter: blur(20px) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    z-index: 9999 !important;
    padding: 1rem 2rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 80px !important;
    transform: translateY(0) !important;
    transition: transform 0.3s ease !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.player-container {
    display: flex;
    align-items: center;
    gap: 2rem;
    flex: 1;
    max-width: 1200px;
    margin: 0 auto;
}

.track-info {
    flex: 1;
    min-width: 200px;
}

.track-details {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.track-title {
    font-size: 1.4rem;
    font-weight: 600;
    color: white;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.track-artist {
    font-size: 1.2rem;
    color: #a0aec0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.player-controls {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.control-btn {
    background: rgba(255, 255, 255, 0.1);
    border: none;
    color: white;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.control-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: scale(1.1);
}

.play-btn {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #667eea, #764ba2);
}

.play-btn:hover {
    background: linear-gradient(135deg, #5a67d8, #6b46c1);
}

.progress-container {
    flex: 2;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 300px;
}

.progress-bar {
    width: 100%;
    height: 4px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 2px;
    cursor: pointer;
    position: relative;
}

.progress-fill {
    height: 100%;
    background: linear-gradient(135deg, #667eea, #764ba2);
    border-radius: 2px;
    width: 0%;
    transition: width 0.1s ease;
}

.time-display {
    display: flex;
    justify-content: space-between;
    font-size: 1.2rem;
    color: #a0aec0;
}

.volume-control {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 150px;
}

.volume-control i {
    color: #a0aec0;
    font-size: 1.4rem;
}

.volume-slider {
    flex: 1;
    height: 4px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 2px;
    outline: none;
    cursor: pointer;
}

.volume-slider::-webkit-slider-thumb {
    appearance: none;
    width: 12px;
    height: 12px;
    background: #667eea;
    border-radius: 50%;
    cursor: pointer;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .global-music-player {
        padding: 0.8rem 1rem;
        min-height: 60px;
    }
    
    .player-container {
        gap: 0.8rem;
        flex-wrap: wrap;
    }
    
    .track-info {
        min-width: 100px;
        flex: 1;
        min-width: 0;
    }
    
    .track-title {
        font-size: 1.2rem;
    }
    
    .track-artist {
        font-size: 1rem;
    }
    
    .player-controls {
        gap: 0.5rem;
        flex-shrink: 0;
    }
    
    .control-btn {
        width: 35px;
        height: 35px;
        font-size: 1rem;
    }
    
    .play-btn {
        width: 40px;
        height: 40px;
    }
    
    .progress-container {
        min-width: 120px;
        flex: 1;
        min-width: 0;
    }
    
    .progress-bar {
        height: 4px;
    }
    
    .time-display {
        font-size: 1rem;
    }
    
    .volume-control {
        min-width: 80px;
        flex-shrink: 0;
    }
    
    .volume-slider {
        width: 60px;
    }
}

@media (max-width: 480px) {
    .global-music-player {
        padding: 0.6rem 0.8rem;
        min-height: 55px;
    }
    
    .player-container {
        gap: 0.5rem;
    }
    
    .track-title {
        font-size: 1.1rem;
    }
    
    .track-artist {
        font-size: 0.9rem;
    }
    
    .control-btn {
        width: 30px;
        height: 30px;
        font-size: 0.9rem;
    }
    
    .play-btn {
        width: 35px;
        height: 35px;
    }
    
    .progress-container {
        min-width: 100px;
    }
    
    .time-display {
        font-size: 0.9rem;
    }
    
    .volume-control {
        min-width: 60px;
    }
    
    .volume-slider {
        width: 50px;
    }
}
</style>

<script>
console.log('🎵 Global player script starting...');

// Global Music Player JavaScript - Simplified
const globalPlayer = {
    audio: null,
    isPlaying: false,
    volume: 0.5,
    initialized: false,
    
    init() {
        if (this.initialized) {
            console.log('🎵 Global player already initialized');
            return Promise.resolve();
        }
        
        console.log('🎵 Initializing global player...');
        
        try {
            this.setupEventListeners();
            this.showPlayer();
            this.initialized = true;
            
            console.log('🎵 Global player initialized successfully');
            
            // Dispatch ready event
            window.dispatchEvent(new CustomEvent('globalPlayerReady'));
            
            return Promise.resolve();
        } catch (error) {
            console.error('🎵 Error initializing global player:', error);
            return Promise.reject(error);
        }
    },
    
    setupEventListeners() {
        console.log('🎵 Setting up event listeners...');
        
        // Play button
        const playBtn = document.getElementById('globalPlayBtn');
        if (playBtn) {
            playBtn.addEventListener('click', (e) => {
                e.preventDefault();
                e.stopPropagation();
                console.log('🎵 Play button clicked');
                this.togglePlayPause();
            });
        }
        
        // Stop button
        const stopBtn = document.getElementById('globalStopBtn');
        if (stopBtn) {
            stopBtn.addEventListener('click', (e) => {
                e.preventDefault();
                e.stopPropagation();
                console.log('🎵 Stop button clicked');
                this.stopTrack();
            });
        }
        
        // Previous button
        const prevBtn = document.getElementById('globalPrevBtn');
        if (prevBtn) {
            prevBtn.addEventListener('click', (e) => {
                e.preventDefault();
                e.stopPropagation();
                console.log('🎵 Previous button clicked');
                // For now, just restart current track
                if (this.audio) {
                    this.audio.currentTime = 0;
                }
            });
        }
        
        // Next button
        const nextBtn = document.getElementById('globalNextBtn');
        if (nextBtn) {
            nextBtn.addEventListener('click', (e) => {
                e.preventDefault();
                e.stopPropagation();
                console.log('🎵 Next button clicked');
                // For now, just stop current track
                this.stopTrack();
            });
        }
        
        // Volume slider
        const volumeSlider = document.getElementById('globalVolumeSlider');
        if (volumeSlider) {
            volumeSlider.value = this.volume * 100;
            
            volumeSlider.addEventListener('input', (e) => {
                this.volume = e.target.value / 100;
                console.log('🎵 Volume changed to:', this.volume);
                
                if (this.audio) {
                    this.audio.volume = this.volume;
                }
                
                this.updateVolumeIcon();
            });
            
            this.updateVolumeIcon();
        }
        
        // Progress bar
        const progressBar = document.getElementById('globalProgressBar');
        if (progressBar) {
            progressBar.addEventListener('click', (e) => {
                if (this.audio && this.audio.duration) {
                    const rect = e.target.getBoundingClientRect();
                    const percent = (e.clientX - rect.left) / rect.width;
                    const newTime = percent * this.audio.duration;
                    this.audio.currentTime = newTime;
                }
            });
        }
        
        // Keyboard shortcuts
        document.addEventListener('keydown', (e) => {
            if (e.code === 'Space' && e.target.tagName !== 'INPUT' && e.target.tagName !== 'TEXTAREA') {
                e.preventDefault();
                this.togglePlayPause();
            }
        });
    },
    
    playTrack(audioUrl, title, artist) {
        console.log('🎵 Playing track:', { audioUrl, title, artist });
        
        // Stop any current audio
        if (this.audio) {
            this.audio.pause();
            this.audio = null;
        }
        
        // Create new audio element
        this.audio = new Audio(audioUrl);
        this.audio.volume = this.volume;
        
        // Update track info immediately
        this.updateTrackInfo(title, artist);
        
        // Setup audio event listeners
        this.audio.addEventListener('loadedmetadata', () => {
            const totalTimeElement = document.getElementById('globalTotalTime');
            if (totalTimeElement && this.audio.duration) {
                totalTimeElement.textContent = this.formatTime(this.audio.duration);
            }
        });
        
        this.audio.addEventListener('timeupdate', () => {
            if (this.audio.duration) {
                const progress = (this.audio.currentTime / this.audio.duration) * 100;
                const progressFill = document.getElementById('globalProgressFill');
                const currentTimeElement = document.getElementById('globalCurrentTime');
                
                if (progressFill) {
                    progressFill.style.width = progress + '%';
                }
                if (currentTimeElement) {
                    currentTimeElement.textContent = this.formatTime(this.audio.currentTime);
                }
            }
        });
        
        this.audio.addEventListener('ended', () => {
            console.log('🎵 Track ended');
            this.isPlaying = false;
            this.updatePlayButton();
        });
        
        this.audio.addEventListener('canplaythrough', () => {
            console.log('🎵 Audio ready to play');
            this.playAudio();
        });
        
        this.audio.addEventListener('error', (e) => {
            console.error('🎵 Audio error:', e);
            this.isPlaying = false;
            this.updatePlayButton();
        });
        
        // Show player
        this.showPlayer();
        this.updatePlayButton();
    },
    
    togglePlayPause() {
        console.log('🎵 togglePlayPause called');
        
        if (!this.audio) {
            console.log('🎵 No audio loaded');
            return;
        }
        
        if (this.isPlaying) {
            console.log('🎵 Pausing audio');
            this.pauseAudio();
        } else {
            console.log('🎵 Playing audio');
            this.playAudio();
        }
    },
    
    playAudio() {
        if (!this.audio) {
            console.error('🎵 No audio element to play');
            return;
        }
        
        this.audio.play().then(() => {
            this.isPlaying = true;
            this.updatePlayButton();
            console.log('🎵 Play successful');
        }).catch(error => {
            console.error('🎵 Play failed:', error);
            this.isPlaying = false;
            this.updatePlayButton();
        });
    },
    
    pauseAudio() {
        if (this.audio) {
            this.audio.pause();
        }
        
        this.isPlaying = false;
        this.updatePlayButton();
    },
    
    stopTrack() {
        console.log('🎵 Stop track called');
        
        if (this.audio) {
            this.audio.pause();
            this.audio.currentTime = 0;
            this.audio.src = '';
            this.audio = null;
        }
        
        this.isPlaying = false;
        this.updatePlayButton();
        
        // Reset progress bar
        const progressFill = document.getElementById('globalProgressFill');
        if (progressFill) {
            progressFill.style.width = '0%';
        }
        
        // Reset time display
        const currentTime = document.getElementById('globalCurrentTime');
        if (currentTime) {
            currentTime.textContent = '0:00';
        }
        
        const totalTime = document.getElementById('globalTotalTime');
        if (totalTime) {
            totalTime.textContent = '0:00';
        }
        
        console.log('🎵 Track stopped');
    },
    
    updateTrackInfo(title, artist) {
        console.log('🎵 Updating track info:', { title, artist });
        
        const trackTitleElement = document.getElementById('globalTrackTitle');
        const trackArtistElement = document.getElementById('globalTrackArtistName');
        
        if (trackTitleElement) {
            trackTitleElement.textContent = title;
        }
        
        if (trackArtistElement) {
            trackArtistElement.textContent = artist;
        }
    },
    
    updatePlayButton() {
        const playButton = document.getElementById('globalPlayBtn');
        if (playButton) {
            const icon = playButton.querySelector('i');
            if (icon) {
                icon.className = this.isPlaying ? 'fas fa-pause' : 'fas fa-play';
            }
        }
    },
    
    updateVolumeIcon() {
        const volumeIcon = document.getElementById('globalVolumeIcon');
        if (volumeIcon) {
            if (this.volume === 0) {
                volumeIcon.className = 'fas fa-volume-mute';
            } else if (this.volume < 0.3) {
                volumeIcon.className = 'fas fa-volume-down';
            } else if (this.volume < 0.7) {
                volumeIcon.className = 'fas fa-volume-off';
            } else {
                volumeIcon.className = 'fas fa-volume-up';
            }
        }
    },
    
    showPlayer() {
        console.log('🎵 Showing global player');
        const playerElement = document.getElementById('globalMusicPlayer');
        if (playerElement) {
            playerElement.style.display = 'flex';
            playerElement.style.opacity = '1';
            playerElement.style.visibility = 'visible';
        }
    },
    
    formatTime(seconds) {
        const mins = Math.floor(seconds / 60);
        const secs = Math.floor(seconds % 60);
        return `${mins}:${secs.toString().padStart(2, '0')}`;
    }
};

// Initialize global player
console.log('🎵 Creating global player object...');
window.globalPlayer = globalPlayer;

// Initialize when DOM is ready
if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', () => {
        console.log('🎵 DOM loaded, initializing global player...');
        setTimeout(() => {
            window.globalPlayer.init();
        }, 100);
    });
} else {
    console.log('🎵 DOM already loaded, initializing immediately...');
    setTimeout(() => {
        window.globalPlayer.init();
    }, 100);
}

// Global function to play track
window.playTrackWithGlobalPlayer = function(audioUrl, title, artist) {
    console.log('🎵 playTrackWithGlobalPlayer called:', { audioUrl, title, artist });
    
    if (window.globalPlayer && window.globalPlayer.playTrack) {
        window.globalPlayer.playTrack(audioUrl, title, artist);
        return true;
    } else {
        console.error('🎵 Global player not available');
        return false;
    }
};

console.log('🎵 Global player script loaded');
</script> 

CasperSecurity Mini