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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/soundstudiopro.com/private_html/utils/band_profile.php
<?php
session_start();
require_once 'config/database.php';

// Check if user is logged in
if (!isset($_SESSION['user_id'])) {
    header('Location: /auth/login.php');
    exit;
}

$pdo = getDBConnection();
$userId = $_GET['user_id'] ?? $_SESSION['user_id'];

// Get user info
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$userId]);
$user = $stmt->fetch();

// Get user albums
$stmt = $pdo->prepare("
    SELECT 
        ua.id,
        ua.title,
        ua.artist,
        ua.genre,
        ua.price,
        ua.description,
        ua.created_at,
        COUNT(at.id) as track_count
    FROM user_albums ua
    LEFT JOIN album_tracks at ON ua.id = at.album_id
    WHERE ua.user_id = ?
    GROUP BY ua.id
    ORDER BY ua.created_at DESC
");
$stmt->execute([$userId]);
$albums = $stmt->fetchAll();

// Get user tracks
$stmt = $pdo->prepare("
    SELECT * FROM music_tracks 
    WHERE user_id = ? AND status = 'complete'
    ORDER BY created_at DESC
");
$stmt->execute([$userId]);
$tracks = $stmt->fetchAll();
?>
<!DOCTYPE html>
<?php
// Include header for color scheme
include 'includes/header.php';
?>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?= htmlspecialchars($user['name']) ?> - Band Profile | SoundStudioPro</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Arial', sans-serif;
            background: var(--primary-gradient);
            color: var(--text-primary);
            min-height: 100vh;
        }

        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 20px;
        }

        .header {
            text-align: center;
            margin-bottom: 40px;
        }

        .artist-name {
            font-size: 48px;
            font-weight: bold;
            margin-bottom: 10px;
            text-shadow: 2px 2px 4px var(--bg-overlay);
        }

        .artist-bio {
            font-size: 18px;
            opacity: 0.9;
            max-width: 600px;
            margin: 0 auto;
            line-height: 1.6;
        }

        .stats {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 20px;
            margin: 40px 0;
        }

        .stat-card { background: var(--bg-card);
            border-radius: 15px;
            padding: 30px;
            text-align: center;
            backdrop-filter: blur(10px);
            border: 1px solid var(--border-medium);
        }

        .stat-number {
            font-size: 36px;
            font-weight: bold;
            margin-bottom: 10px;
        }

        .stat-label {
            font-size: 14px;
            opacity: 0.8;
            text-transform: uppercase;
            letter-spacing: 1px;
        }

        .section {
            margin: 60px 0;
        }

        .section-title {
            font-size: 32px;
            font-weight: bold;
            margin-bottom: 30px;
            text-align: center;
        }

        .albums-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            gap: 30px;
        }

        .album-card {
            background: var(--bg-card);
            border-radius: 20px;
            padding: 30px;
            backdrop-filter: blur(10px);
            border: 1px solid var(--border-medium);
            transition: transform 0.3s, box-shadow 0.3s;
            position: relative;
            overflow: hidden;
        }

        .album-card:hover {
            transform: translateY(-10px);
            box-shadow: 0 20px 40px var(--bg-overlay);
        }

        .album-cover {
            width: 100%;
            height: 200px;
            background: linear-gradient(45deg, #3498db, #9b59b6);
            border-radius: 15px;
            margin-bottom: 20px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 48px;
            color: var(--text-primary);
        }

        .album-title {
            font-size: 24px;
            font-weight: bold;
            margin-bottom: 10px;
        }

        .album-artist {
            font-size: 16px;
            opacity: 0.8;
            margin-bottom: 15px;
        }

        .album-genre {
            background: rgba(52, 152, 219, 0.3);
            padding: 5px 15px;
            border-radius: 20px;
            font-size: 12px;
            display: inline-block;
            margin-bottom: 15px;
        }

        .album-description {
            font-size: 14px;
            line-height: 1.6;
            margin-bottom: 20px;
            opacity: 0.9;
        }

        .album-meta {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
        }

        .album-tracks {
            font-size: 14px;
            opacity: 0.8;
        }

        .album-price {
            font-size: 24px;
            font-weight: bold;
            color: var(--text-primary);
        }

        .album-actions {
            display: flex;
            gap: 10px;
        }

        .btn {
            padding: 12px 24px;
            border: none;
            border-radius: 25px;
            cursor: pointer;
            font-size: 14px;
            font-weight: bold;
            transition: all 0.3s;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }

        .btn-primary { background: var(--primary-gradient);
            color: var(--text-primary);
        }

        .btn-primary:hover {
            background: var(--bg-card);
            transform: scale(1.05);
        }

        .btn-success {
            background: var(--bg-card);
            color: var(--text-primary);
        }

        .btn-success:hover {
            background: var(--bg-card);
            transform: scale(1.05);
        }

        .btn-secondary { background: var(--bg-card);
            color: var(--text-primary);
        }

        .btn-secondary:hover {
            background: rgba(255, 255, 255, 0.3);
            transform: scale(1.05);
        }

        .tracks-list {
            background: var(--bg-card);
            border-radius: 20px;
            padding: 30px;
            backdrop-filter: blur(10px);
            border: 1px solid var(--border-medium);
        }

        .track-item {
            display: flex;
            align-items: center;
            padding: 15px;
            border-bottom: 1px solid var(--bg-card);
            transition: background 0.3s;
        }

        .track-item:hover {
            background: var(--bg-card);
        }

        .track-item:last-child {
            border-bottom: none;
        }

        .track-number {
            width: 40px;
            font-weight: bold;
            opacity: 0.7;
        }

        .track-info {
            flex: 1;
            margin: 0 20px;
        }

        .track-title {
            font-weight: bold;
            margin-bottom: 5px;
        }

        .track-prompt {
            font-size: 14px;
            opacity: 0.8;
        }

        .track-duration {
            font-size: 14px;
            opacity: 0.7;
        }

        .track-actions {
            display: flex;
            gap: 10px;
        }

        .edit-profile {
            position: fixed;
            top: 20px;
            right: 20px;
            background: var(--bg-card);
            color: var(--text-primary);
            padding: 12px 20px;
            border-radius: 25px;
            text-decoration: none;
            font-weight: bold;
            transition: all 0.3s;
        }

        .edit-profile:hover {
            background: var(--bg-card);
            transform: scale(1.05);
        }

        .navigation {
            position: fixed;
            top: 20px;
            left: 20px;
            display: flex;
            gap: 10px;
        }

        .nav-btn {
            background: var(--border-medium);
            color: var(--text-primary);
            padding: 10px 15px;
            border-radius: 20px;
            text-decoration: none;
            font-weight: bold;
            transition: all 0.3s;
        }

        .nav-btn:hover {
            background: rgba(255, 255, 255, 0.3);
            transform: scale(1.05);
        }

        @media (max-width: 768px) {
            .container {
                padding: 10px;
            }
            
            .artist-name {
                font-size: 32px;
            }
            
            .albums-grid {
                grid-template-columns: 1fr;
            }
            
            .stats {
                grid-template-columns: repeat(2, 1fr);
            }
        }
    </style>
</head>
<body>
    <!-- Navigation -->
    <div class="navigation">
        <a href="/dashboard.php" class="nav-btn">
            <i class="fas fa-home"></i> Dashboard
        </a>
        <a href="/winamp_player.php" class="nav-btn">
            <i class="fas fa-music"></i> Player
        </a>
    </div>

    <!-- Edit Profile Button (only for own profile) -->
    <?php if ($userId == $_SESSION['user_id']): ?>
    <a href="/edit_profile.php" class="edit-profile">
        <i class="fas fa-edit"></i> Edit Profile
    </a>
    <?php endif; ?>

    <div class="container">
        <!-- Header -->
        <div class="header">
            <h1 class="artist-name"><?= htmlspecialchars($user['name']) ?></h1>
            <p class="artist-bio">
                <?= htmlspecialchars($user['bio'] ?? 'A talented artist creating amazing music with AI.') ?>
            </p>
        </div>

        <!-- Stats -->
        <div class="stats">
            <div class="stat-card">
                <div class="stat-number"><?= count($albums) ?></div>
                <div class="stat-label">Albums</div>
            </div>
            <div class="stat-card">
                <div class="stat-number"><?= count($tracks) ?></div>
                <div class="stat-label">Tracks</div>
            </div>
            <div class="stat-card">
                <div class="stat-number"><?= array_sum(array_column($albums, 'track_count')) ?></div>
                <div class="stat-label">Total Songs</div>
            </div>
            <div class="stat-card">
                <div class="stat-number">$<?= number_format(array_sum(array_column($albums, 'price')), 2) ?></div>
                <div class="stat-label">Total Value</div>
            </div>
        </div>

        <!-- Albums Section -->
        <div class="section">
            <h2 class="section-title">Albums</h2>
            <div class="albums-grid">
                <?php foreach ($albums as $album): ?>
                <div class="album-card">
                    <div class="album-cover">
                        <i class="fas fa-compact-disc"></i>
                    </div>
                    <h3 class="album-title"><?= htmlspecialchars($album['title']) ?></h3>
                    <p class="album-artist"><?= htmlspecialchars($album['artist']) ?></p>
                    <span class="album-genre"><?= htmlspecialchars($album['genre']) ?></span>
                    <p class="album-description"><?= htmlspecialchars($album['description']) ?></p>
                    <div class="album-meta">
                        <span class="album-tracks"><?= $album['track_count'] ?> tracks</span>
                        <span class="album-price">$<?= number_format($album['price'], 2) ?></span>
                    </div>
                    <div class="album-actions">
                        <a href="/album_detail.php?id=<?= $album['id'] ?>" class="btn btn-primary">
                            <i class="fas fa-eye"></i> View
                        </a>
                        <?php if ($userId == $_SESSION['user_id']): ?>
                        <a href="/edit_album.php?id=<?= $album['id'] ?>" class="btn btn-secondary">
                            <i class="fas fa-edit"></i> Edit
                        </a>
                        <?php else: ?>
                        <button class="btn btn-success" onclick="buyAlbum(<?= $album['id'] ?>)">
                            <i class="fas fa-shopping-cart"></i> Buy
                        </button>
                        <?php endif; ?>
                    </div>
                </div>
                <?php endforeach; ?>
            </div>
        </div>

        <!-- Tracks Section -->
        <div class="section">
            <h2 class="section-title">Latest Tracks</h2>
            <div class="tracks-list">
                <?php foreach (array_slice($tracks, 0, 10) as $index => $track): ?>
                <div class="track-item">
                    <div class="track-number"><?= $index + 1 ?></div>
                    <div class="track-info">
                        <div class="track-title"><?= htmlspecialchars($track['title']) ?></div>
                        <div class="track-prompt"><?= htmlspecialchars($track['prompt']) ?></div>
                    </div>
                    <div class="track-duration">30s</div>
                    <div class="track-actions">
                        <button class="btn btn-primary" onclick="playTrack('<?= $track['task_id'] ?>')">
                            <i class="fas fa-play"></i> Play
                        </button>
                        <button class="btn btn-secondary" onclick="addToPlaylist('<?= $track['task_id'] ?>')">
                            <i class="fas fa-plus"></i> Add
                        </button>
                    </div>
                </div>
                <?php endforeach; ?>
            </div>
        </div>
    </div>

    <script>
        function playTrack(taskId) {
            // Open in Winamp player
            window.open('/winamp_player.php?play=' + taskId, '_blank');
        }

        function addToPlaylist(taskId) {
            // Add to playlist functionality
            alert('Track added to playlist!');
        }

        function buyAlbum(albumId) {
            // Purchase functionality
            if (confirm('Purchase this album?')) {
                // Implement payment processing
                alert('Purchase successful!');
            }
        }
    </script>
</body>
</html> 

CasperSecurity Mini