![]() 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/-7f3c99a2/ |
<?php
require_once 'config/database.php';
$pdo = getDBConnection();
// Get the specific track
$stmt = $pdo->prepare("SELECT * FROM music_tracks WHERE id = 18");
$stmt->execute();
$track = $stmt->fetch();
// Get artist info
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$track['user_id']]);
$artist = $stmt->fetch();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Verify Louise's Smile Fix</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
body {
font-family: Arial, sans-serif;
padding: 20px;
background: #1a1a1a;
color: white;
}
.container {
max-width: 800px;
margin: 0 auto;
}
.track-card {
background: #2a2a2a;
padding: 20px;
border-radius: 10px;
margin-bottom: 20px;
}
.btn {
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 16px;
margin: 10px;
}
.btn-primary {
background: #007bff;
color: white;
}
.debug-info {
background: #000;
color: #0f0;
padding: 20px;
border-radius: 5px;
font-family: monospace;
margin-top: 20px;
}
.status {
padding: 10px;
border-radius: 5px;
margin: 10px 0;
}
.status.success {
background: #28a745;
color: white;
}
.status.error {
background: #dc3545;
color: white;
}
</style>
</head>
<body>
<div class="container">
<h1>Verify Louise's Smile Fix</h1>
<div class="track-card">
<h2><?= htmlspecialchars($track['title']) ?></h2>
<p><strong>Artist:</strong> <?= htmlspecialchars($artist['name']) ?></p>
<p><strong>Audio URL:</strong> <?= htmlspecialchars($track['audio_url']) ?></p>
<button class="btn btn-primary play-track-btn"
data-audio-url="<?= htmlspecialchars($track['audio_url']) ?>"
data-title="<?= htmlspecialchars($track['title']) ?>"
data-artist="<?= htmlspecialchars($artist['name']) ?>"
data-track-id="<?= $track['id'] ?>">
<i class="fas fa-play"></i> Play Louise's Smile
</button>
</div>
<div id="status"></div>
<div class="debug-info" id="debug">
Debug information will appear here...
</div>
</div>
<script>
function log(message) {
const debug = document.getElementById('debug');
const timestamp = new Date().toLocaleTimeString();
debug.innerHTML += `[${timestamp}] ${message}\n`;
debug.scrollTop = debug.scrollHeight;
}
function showStatus(message, type = 'success') {
const status = document.getElementById('status');
status.innerHTML = `<div class="status ${type}">${message}</div>`;
}
// Test the playTrack function
async function playTrack(audioUrl, title, artist) {
log('🎵 playTrack called with:');
log(` Audio URL: ${audioUrl}`);
log(` Title: ${title}`);
log(` Artist: ${artist}`);
showStatus('Testing track playback...', 'success');
try {
// Test direct audio first
const audio = new Audio(audioUrl);
audio.volume = 0.3;
audio.addEventListener('loadstart', () => log('🎵 Audio loadstart'));
audio.addEventListener('loadedmetadata', () => log('🎵 Audio loadedmetadata'));
audio.addEventListener('canplay', () => log('🎵 Audio canplay'));
audio.addEventListener('play', () => {
log('🎵 Audio play started');
showStatus('Track is playing successfully!', 'success');
});
audio.addEventListener('error', (e) => {
log(`❌ Audio error: ${e.target.error ? e.target.error.message : 'Unknown error'}`);
showStatus('Failed to load audio track.', 'error');
});
await audio.play();
log('🎵 Audio play promise resolved');
} catch (error) {
log(`❌ Error playing audio: ${error.message}`);
showStatus(`Error: ${error.message}`, 'error');
}
}
// Add event listener for play button
document.addEventListener('click', function(e) {
if (e.target.closest('.play-track-btn')) {
const button = e.target.closest('.play-track-btn');
const audioUrl = button.getAttribute('data-audio-url');
const title = button.getAttribute('data-title');
const artist = button.getAttribute('data-artist');
const trackId = button.getAttribute('data-track-id');
log('🎵 Play button clicked!');
log(` Button data attributes:`);
log(` - data-audio-url: ${audioUrl}`);
log(` - data-title: ${title}`);
log(` - data-artist: ${artist}`);
log(` - data-track-id: ${trackId}`);
if (audioUrl && title && artist) {
playTrack(audioUrl, title, artist);
} else {
log('❌ Missing data attributes');
showStatus('Error: Missing track data', 'error');
}
}
});
// Log page load
log('🎵 Verification page loaded');
log('🎵 Click the Play button to test Louise\'s Smile');
</script>
</body>
</html>