403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.48
Web Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12
System : Windows NT DESKTOP-3H4FHQJ 10.0 build 19045 (Windows 10) AMD64
User : win 10 ( 0)
PHP Version : 8.2.12
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  D:/xampp/htdocs-coblaa/Cinevaa/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : D:/xampp/htdocs-coblaa/Cinevaa/cine_player.php
<?php
session_start();
include 'db.php';

if (!isset($_SESSION['my_id'])) {
    header("Location: login.php");
    exit();
}

$userID = $_SESSION['my_id'];

$checkSql = "SELECT subscription_status FROM cine_subscriptiontb 
             WHERE my_id = ? 
             AND subscription_status = 'active' 
             AND expiry_date > NOW()";

$stmt = $con->prepare($checkSql);
$stmt->bind_param("s", $userID);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows === 0) {
    header("Location: plans.php?error=no_active_sub");
    exit();
}

if(isset($_GET['mvSrc'])){
    $mvSrc = htmlspecialchars($_GET['mvSrc']);
    $mvTitle = htmlspecialchars($_GET['mvTitle']);
    $mvThumb = isset($_GET['mvThumb']) ? htmlspecialchars($_GET['mvThumb']) : '';
} else {
    header("Location: index.php");
    exit();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CineStream | <?php echo $mvTitle ?></title>
    <link rel="stylesheet" type="text/css" href="main_css/cine_player.css" />
    <style>
        .custom-player-container { position: relative; overflow: hidden; background: #000; width: 100%; height: 100%; }
        .player-controls, .player-header {
            transition: opacity 0.5s ease, visibility 0.5s;
            opacity: 1;
            visibility: visible;
            z-index: 20;
        }
        .hide-interface { opacity: 0 !important; visibility: hidden !important; }
        #mainVideo { width: 100%; height: auto; display: block; }

        /* GOLD CENTER PLAY BUTTON */
        .center-play-btn {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background: #D4AF37;
            color: #000;
            border: none;
            border-radius: 50%;
            width: 80px;
            height: 80px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            z-index: 25;
            box-shadow: 0 0 20px rgba(212, 175, 55, 0.6);
            transition: opacity 0.3s, transform 0.2s;
        }
        .center-play-btn:active { transform: translate(-50%, -50%) scale(0.95); }
        .center-play-btn.playing { opacity: 0; visibility: hidden; pointer-events: none; }
        
        /* Volume Widget Styles */
        .volume-widget { display: flex; align-items: center; margin-left: 10px; }
        .volume-slider-box { width: 0; overflow: hidden; transition: width 0.3s; display: flex; align-items: center; }
        .volume-widget:hover .volume-slider-box { width: 80px; margin-left: 5px; }
		
	
		
		
    </style>
</head>
<body>

    <div id="playerOverlay" class="video_overlay">
        <div class="player_modal">
            <div class="custom-player-container" id="videoWrapper">
                
                <button class="center-play-btn" id="midPlayBtn" onclick="togglePlay()">
                    <svg width="40" height="40" fill="currentColor" viewBox="0 0 24 24"><path d="M8 5v14l11-7z"/></svg>
                </button>

                <!--div class="player-header" id="topHeader">
                    <h2 class="player-title"><?php echo $mvTitle ?></h2>
                    <button onclick="history.back()" class="close-btn">
                        <svg width="32" height="32" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg>
                    </button>
                </div-->
<div class="player_div" id="">
                <video id="mainVideo" poster="<?php echo $mvThumb; ?>" playsinline  >
                    <source src="<?php echo $mvSrc; ?>">
                </video></div>
                
                <div class="player-controls" id="bottomControls">
                    <div class="seeker-container">
                        <input type="range" id="seeker" class="custom-range" value="0" min="0" step="0.01">
                        <div id="progressFill" class="progress-fill" style="width: 0%"></div>
                    </div>
                    
                    <div class="controls-bar">
                        <div class="group-left">
                            <button id="playPauseBtn" class="btn-icon">
                                <svg id="playIcon" width="24" height="24" fill="currentColor" viewBox="0 0 24 24"><path d="M8 5v14l11-7z"/></svg>
                                <svg id="pauseIcon" style="display:none;" width="24" height="24" fill="currentColor" viewBox="0 0 24 24"><path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/></svg>
                            </button>

                            <div class="volume-widget">
                                <button id="muteBtn" class="btn-icon">
                                    <svg id="volIcon" width="20" height="20" fill="currentColor" viewBox="0 0 24 24"><path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02z"/></svg>
                                </button>
                                <div class="volume-slider-box">
                                    <input type="range" id="volumeSlider" class="custom-range" min="0" max="1" step="0.05" value="1">
                                </div>
                            </div>

                            <span id="timeDisplay" class="time-text">00:00:00 / 00:00:00</span>
                        </div>
                        
                        <div class="group-right">
                            <button id="fullscreenBtn" class="btn-icon">
                                <svg width="20" height="20" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2"><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7"/></svg>
                            </button>
                        </div>
                    </div>
                </div>
            </div>
			
			<div class="player-header" id="topHeader">
                    <h2 class="player-title"><?php echo $mvTitle ?></h2>
                    <!--button onclick="history.back()" class="close-btn">
                        <svg width="32" height="32" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg>
                    </button-->
                </div>
			
			<div class="external-back-nav">
            <a href="javascript:history.back()" class="back-link">
                <svg width="20" height="20" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2">
                    <path d="M10 19l-7-7m0 0l7-7m-7 7h18"></path>
                </svg>
                Return to Library
            </a>
        </div>
		
        </div>
    </div>

    <script>
        const video = document.getElementById('mainVideo');
        const wrapper = document.getElementById('videoWrapper');
        const header = document.getElementById('topHeader');
        const controls = document.getElementById('bottomControls');
        const midPlayBtn = document.getElementById('midPlayBtn');
        const playIcon = document.getElementById('playIcon');
        const pauseIcon = document.getElementById('pauseIcon');
        const seeker = document.getElementById('seeker');
        const progressFill = document.getElementById('progressFill');
        const timeDisplay = document.getElementById('timeDisplay');
        const volumeSlider = document.getElementById('volumeSlider');
        const muteBtn = document.getElementById('muteBtn');

        // Toggle Play/Pause
        function togglePlay() {
            if (video.paused) {
                video.play();
                updatePlayPauseUI(true);
            } else {
                video.pause();
                updatePlayPauseUI(false);
            }
        }

        function updatePlayPauseUI(isPlaying) {
            if (isPlaying) {
                playIcon.style.display = "none";
                pauseIcon.style.display = "block";
                midPlayBtn.classList.add('playing');
                showControls();
            } else {
                playIcon.style.display = "block";
                pauseIcon.style.display = "none";
                midPlayBtn.classList.remove('playing');
            }
        }

        // Volume Logic
        volumeSlider.addEventListener('input', (e) => {
            video.volume = e.target.value;
            video.muted = (e.target.value == 0);
        });

        muteBtn.addEventListener('click', () => {
            video.muted = !video.muted;
            volumeSlider.value = video.muted ? 0 : video.volume;
        });

        // Time Formatting
        function formatTime(seconds) {
            if (isNaN(seconds)) return "00:00:00";
            const h = Math.floor(seconds / 3600);
            const m = Math.floor((seconds % 3600) / 60);
            const s = Math.floor(seconds % 60);
            return [h, m, s].map(v => v < 10 ? "0" + v : v).join(":");
        }

        video.addEventListener('timeupdate', () => {
            timeDisplay.innerText = `${formatTime(video.currentTime)} / ${formatTime(video.duration)}`;
            if (!seeker.matches(':active')) {
                seeker.value = video.currentTime;
                progressFill.style.width = (video.currentTime / video.duration * 100) + '%';
            }
        });

        video.addEventListener('loadedmetadata', () => { seeker.max = video.duration; });
        seeker.addEventListener('input', () => { video.currentTime = seeker.value; });

        // Auto-Hide Logic
        let hideTimeout;
        function showControls() {
            header.classList.remove('hide-interface');
            controls.classList.remove('hide-interface');
            clearTimeout(hideTimeout);
            if (!video.paused) {
                hideTimeout = setTimeout(() => {
                    header.classList.add('hide-interface');
                    controls.classList.add('hide-interface');
                }, 3000);
            }
        }

        // Listeners
        document.getElementById('playPauseBtn').addEventListener('click', togglePlay);
        video.addEventListener('click', togglePlay);
        wrapper.addEventListener('mousemove', showControls);
        wrapper.addEventListener('touchstart', showControls, {passive: true});

        // Fullscreen
        document.getElementById('fullscreenBtn').addEventListener('click', () => {
            if (!document.fullscreenElement) wrapper.requestFullscreen();
            else document.exitFullscreen();
        });

        // Heartbeat check
        setInterval(() => {
            fetch('check_subscription_ajax.php')
                .then(r => r.json())
                .then(data => {
                    if (data.status !== 'active') window.location.href = "plans.php?error=expired";
                });
        }, 60000);
    </script>
</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit