Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php date_default_timezone_set('Asia/Ho_Chi_Minh'); session_start(); // Bt u phin lm ..

Decoded Output download

<?php 
date_default_timezone_set('Asia/Ho_Chi_Minh'); 
 
session_start(); // Bt u phin lm vic 
 
// Kim tra xem ngi dng  ng nhp cha 
if (!isset($_SESSION['username'])) { 
    header('Location: login.php'); 
    exit(); 
} 
 
// Lu `username` vo cookie nu cha c 
if (!isset($_COOKIE['username'])) { 
    setcookie('username', $_SESSION['username'], time() + (86400 * 30), "/"); // 86400 giy = 1 ngy 
} 
 
// Kt ni ti c s d liu 
$servername = "45.252.248.32"; 
$usernameDB = "tpxwahid_admin"; 
$passwordDB = "Camzone2023@"; 
$dbname = "tpxwahid_user_registration"; 
 
$conn = new mysqli($servername, $usernameDB, $passwordDB, $dbname); 
 
// Kim tra kt ni 
if ($conn->connect_error) { 
    die("Kt ni tht bi: " . $conn->connect_error); 
} 
 
// Ly username t session 
$username = $_SESSION['username'];  
 
// To truy vn SQL  ly URL v start_record t bng customerdata 
$sql = "SELECT url, start_record FROM customerdata WHERE username = '$username'"; 
$result = $conn->query($sql); 
 
if ($result->num_rows > 0) { 
    $row = $result->fetch_assoc(); 
    $url = $row["url"]; 
    $start_record = $row["start_record"]; 
     
    // Chuyn i URL v start_record t PHP sang JavaScript v hin th 
    echo "<script>"; 
    echo "const savedURL = '" . $url . "';"; 
    echo "const openurl = '" . $start_record . "';"; 
    echo "</script>"; 
} else { 
    echo "<script>"; 
    echo "alert('Lin H Zalo - 0867834822  c kch hot.');"; 
    echo "</script>"; 
} 
 
$conn->close(); 
 
// Kt ni ti c s d liu 
$servername = "45.252.248.32"; 
$usernameDB = "tpxwahid_admin"; 
$passwordDB = "Camzone2023@"; 
$dbname = "tpxwahid_user_registration"; 
 
$conn = new mysqli($servername, $usernameDB, $passwordDB, $dbname); 
 
// Kim tra kt ni 
if ($conn->connect_error) { 
    die("Kt ni ti c s d liu tht bi: " . $conn->connect_error); 
} 
 
// Thm thi gian vo log 
$currentTime = date('Y-m-d H:i:s'); 
$location = 'Hanoi'; 
$trackingCode = '123456789'; 
 
// X l khi ngi dng nhp m PIN 
if (isset($_POST['pin'])) { 
    // Kim tra xem c b kha khng 
    if ($_SESSION['locked_until'] > time()) { 
        $remainingTime = $_SESSION['locked_until'] - time(); 
        $message = '<div class="alert alert-danger mt-3" role="alert">Bn  nhp sai qu 3 ln. Vui lng nhp li sau ' . $remainingTime . ' giy.</div>'; 
    } else { 
        $enteredPin = $_POST['pin']; 
 
        // Kt ni ti c s d liu 
        $conn = new mysqli($servername, $usernameDB, $passwordDB, $dbname); 
 
        // Kim tra kt ni 
        if ($conn->connect_error) { 
            die("Kt ni ti c s d liu tht bi: " . $conn->connect_error); 
        } 
 
        // Ly thng tin username t cookie  ng nhp 
        $usernameFromCookie = $_COOKIE['username']; 
 
        // Thc hin truy vn  tm kim bn ghi vi m PIN v username khp nhau 
        $sql = "SELECT * FROM customerdata WHERE PIN = '$enteredPin' AND Username = '$usernameFromCookie'"; 
        $result = $conn->query($sql); 
 
        if ($result->num_rows > 0) { 
            // M PIN v username t cookie u khp vi bn ghi trong c s d liu, cho php vt qua 
            $row = $result->fetch_assoc(); 
            $_SESSION['valid_pin'] = $enteredPin; 
 
            // Kim tra v lu cookie vi m PIN  hp l 
            if (isset($_COOKIE['saved_pin'])) { 
                unset($_COOKIE['saved_pin']); 
                setcookie('saved_pin', null, -1, '/'); 
            } 
            setcookie('saved_pin', $enteredPin, time() + (86400 * 30), "/"); // 86400 giy = 1 ngy 
 
            // Kim tra v to bng log nu cha tn ti 
            $createTableSql = "CREATE TABLE IF NOT EXISTS $tableName ( 
                id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
                start_time DATETIME, 
                end_time DATETIME, 
                location VARCHAR(255), 
                tracking_code VARCHAR(255) 
            )"; 
 
            if ($conn->query($createTableSql) === TRUE) { 
                // Bng log  c to hoc tn ti 
 
                // Reset s ln th sai v thi gian kha khi nhp ng 
                $_SESSION['failed_attempts'] = 0; 
                $_SESSION['locked_until'] = 0; 
            } else { 
                // Li khi to bng log 
                $message = '<div class="alert alert-danger mt-3" role="alert">Li khi to bng log: ' . $conn->error . '</div>'; 
            } 
        } else { 
            // M PIN hoc username khng khp hoc khng tm thy 
            $_SESSION['failed_attempts']++; 
 
            if ($_SESSION['failed_attempts'] >= 3) { 
                // Tnh ton thi gian kha 
                $lockTime = 60 * pow(2, $_SESSION['failed_attempts'] - 3); // 60s * 2^(s ln sai - 3) 
                $lockTime = min($lockTime, 180); // Ti a 3 pht (180 giy) 
                $_SESSION['locked_until'] = time() + $lockTime; 
 
                $message = '<div class="alert alert-danger mt-3" role="alert">Bn  nhp sai qu 3 ln. Vui lng nhp li sau ' . $lockTime . ' giy.</div>'; 
            } else { 
                $message = '<div class="alert alert-danger mt-3" role="alert">M PIN hoc thng tin ng nhp khng ng.</div>'; 
            } 
        } 
 
        // ng kt ni 
        $conn->close(); 
    } 
} 
 
// S dng hng s cho tn cookie 
define('COOKIE_PIN', 'saved_pin'); 
 
$logFilePath = null; 
$message = null; 
$matchingLines = null; 
 
// Kt ni ti c s d liu 
$servername = "45.252.248.32"; 
$usernameDB = "tpxwahid_admin"; 
$passwordDB = "Camzone2023@"; 
$dbname = "tpxwahid_customer_db"; 
 
$conn = new mysqli($servername, $usernameDB, $passwordDB, $dbname); 
 
// Kim tra kt ni 
if ($conn->connect_error) { 
    die("Kt ni tht bi: " . $conn->connect_error); 
} 
 
// To tn bng log tng ng vi username 
$tableName = "log_" . $usernameFromCookie; 
 
// Kim tra xem c m PIN hp l trong session hoc cookie 
if (isset($_SESSION['valid_pin']) || isset($_COOKIE['COOKIE_PIN'])) { 
    $savedPin = isset($_SESSION['valid_pin']) ? $_SESSION['valid_pin'] : $_COOKIE['COOKIE_PIN']; 
    $usernameFromCookie = $_COOKIE['username'];  // Ly username t cookie 
    $url = $customerData[$savedPin]['url']; 
 
    // X l tm kim khi  c m PIN hp l v c truy vn 
    if (isset($_GET['q'])) { 
        $searchQuery = htmlspecialchars($_GET['q'], ENT_QUOTES, 'UTF-8'); 
        $searchQuery = str_replace('-', '/', $searchQuery); 
        $searchQuery = trim($searchQuery); 
 
        $isDateQuery = preg_match('/^\d{2}\/\d{2}\/\d{4}$/', $searchQuery); 
        $isCodeQuery = (strlen($searchQuery) >= 5); 
 
        if ($isDateQuery || $isCodeQuery) { 
            $tableName = 'log_' . $usernameFromCookie; 
            $query = "SELECT * FROM $tableName WHERE 1=1"; 
 
            if ($isDateQuery) { 
                $date = DateTime::createFromFormat('d/m/Y', $searchQuery)->format('Y-m-d'); 
                $query .= " AND DATE(`start_time`) = '$date'"; 
            } 
 
            if ($isCodeQuery) { 
                $query .= " AND `tracking_code` LIKE '%$searchQuery%'"; 
            } 
 
            $result = $conn->query($query); 
 
            if ($result) { 
                $matchingLines = []; 
                while ($row = $result->fetch_assoc()) { 
                    // nh dng li thi gian hin th 
                    $formattedStartTime = DateTime::createFromFormat('Y-m-d H:i:s', $row['start_time'])->format('d/m/Y H:i:s'); 
                    $formattedEndTime = $row['end_time'] ? DateTime::createFromFormat('Y-m-d H:i:s', $row['end_time'])->format('d/m/Y H:i:s') : 'N/A'; 
                    $row['start_time'] = $formattedStartTime; 
                    $row['end_time'] = $formattedEndTime; 
                    $matchingLines[] = $row; 
                } 
 
                // PHN TRANG 
                $itemsPerPage = 100; 
                $currentPage = isset($_GET['page']) ? max(1, (int)$_GET['page']) : 1; // m bo trang hin ti lun >= 1 
                $startIndex = ($currentPage - 1) * $itemsPerPage; 
                $totalResults = count($matchingLines); 
                $totalPages = ceil($totalResults / $itemsPerPage); // Tnh tng s trang 
                $matchingLines = array_slice($matchingLines, $startIndex, $itemsPerPage); 
            } else { 
                $message = '<div class="alert alert-danger mt-3" role="alert">Khng th c d liu t c s d liu. Vui lng kim tra li.</div>'; 
            } 
        } else { 
            $message = '<div class="alert alert-info mt-3" role="alert">Truy vn khng hp l. Vui lng nhp m vn n (ti thiu 5 k t).</div>'; 
        } 
    } 
} 
 
// Kim tra xem c yu cu ti xung khng 
if (isset($_GET['download']) && $_GET['download'] == 1 && isset($matchingLines)) { 
    $txtContent = "STT	Thi gian Start	Thi gian Kt thc	Bn ng	M Vn n
"; 
    $stt = 1; 
 
    // Lc ton b kt qu, khng ch trang hin ti 
    $query = "SELECT * FROM log_$usernameFromCookie WHERE 1=1"; 
 
    if ($isDateQuery) { 
        $date = DateTime::createFromFormat('d/m/Y', $searchQuery)->format('Y-m-d'); 
        $query .= " AND DATE(`start_time`) = '$date'"; 
    } 
 
    if ($isCodeQuery) { 
        $query .= " AND `tracking_code` LIKE '%$searchQuery%'"; 
    } 
 
    $result = $conn->query($query); 
 
    if ($result) { 
        while ($row = $result->fetch_assoc()) { 
            // nh dng li thi gian hin th 
            $formattedStartTime = DateTime::createFromFormat('Y-m-d H:i:s', $row['start_time'])->format('d/m/Y H:i:s'); 
            $formattedEndTime = $row['end_time'] ? DateTime::createFromFormat('Y-m-d H:i:s', $row['end_time'])->format('d/m/Y H:i:s') : 'N/A'; 
            $txtContent .= $stt++ . "	"; 
            $txtContent .= $formattedStartTime . "	"; // Hin th thi gian bt u  nh dng 
            $txtContent .= $formattedEndTime . "	"; // Hin th thi gian kt thc  nh dng 
            $txtContent .= $row['location'] . "	"; 
            $txtContent .= $row['tracking_code'] . "
"; 
        } 
    } 
 
    header('Content-Type: text/plain'); 
    header('Content-Disposition: attachment;filename="ket_qua_tim_kiem.txt"'); 
    echo $txtContent; 
    exit; 
} 
?> 
 
<!DOCTYPE html> 
<html> 
 
<head> 
    <title>Tra cu n Hng</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 
 
 
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> 
     <script src="html5-qrcode.min.js"></script> 
     <audio id="beep-sound" src="beep2.mp3" preload="auto"></audio> 
 
    <style> 
     
        html { 
              touch-action: manipulation; 
        }   
        body { 
            font-family: sans-serif; 
            background-color: #f4f4f4; 
        } 
 
        .container { 
            background-color: #fff; 
            padding: 20px; 
            border-radius: 10px; 
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); 
        } 
 
        h1 { 
            text-align: center; 
            margin-bottom: 20px; 
            color: #333; 
        } 
 
        .form-control { 
            border-radius: 5px; 
        } 
 
        .btn-primary { 
            background-color: #007bff; 
            border: none; 
            border-radius: 5px; 
        } 
 
        .table { 
            margin-top: 20px; 
        } 
 
        .table th, 
        .table td { 
            vertical-align: middle; 
            text-align: center; 
        } 
 
        /* Ti u cho mobile */ 
        @media (max-width: 768px) { 
            .container { 
                padding: 10px; 
            } 
 
            h1 { 
                font-size: 1.6rem; 
            } 
 
            .table { 
                font-size: 0.8rem; 
            } 
 
            .btn-primary { 
                display: block; 
                width: 100%; 
                padding: 5px 15px; 
            } 
        } 
 
        /* Highlight kt qu tm kim */ 
        .highlight { 
            background-color: yellow; 
        } 
 
        #reader { 
            width: 50%; 
            max-width: 200px; 
            margin: auto; 
            display: none; 
        } 
         
        #result, #message { 
            margin-top: 20px; 
            font-size: 18px; 
            font-weight: bold; 
        } 
 
        #result { 
            color: green; 
        } 
 
        #message { 
            color: red; 
        } 
 
       #start-button { 
    display: block; 
    padding: 10px 30px; /* Reduced height padding */ 
    font-size: 20px; 
    font-weight: bold; 
    color: white; 
    background-color: #FF2400; /* Red */ 
    border: none; 
    border-radius: 8px; /* Rounded corners */ 
    text-align: center; 
    cursor: pointer; 
    outline: none; 
    margin: 20px auto; /* Center the button */ 
} 
 
 
  h1 { 
    margin-top: 20px; /* t margin-top l 20px */ 
    font-size: 24px; /* t kch thc ch l 24px, bn c th iu chnh gi tr ny ty  */ 
} 
 
     footer { 
            position: fixed; 
            bottom: 0; 
            width: 100%; 
            text-align: center; 
            background-color: black; 
        } 
        footer img { 
            max-width: 100%; 
            height: auto; 
        } 
        @media (max-width: 767px) { 
            body { 
                font-size: 14px; 
            } 
            .container { 
                padding: 10px; 
            } 
            footer img { 
                content: url('footer-mobile.jpg'); 
            } 
        } 
    </style> 
</head> 
 
<body> 
  <div class="container"> 
        <a href="customer_management.php" class="btn btn-info">Thng tin ti khon</a> 
 
        <h1>CamSight by Camzone.vn</h1> 
     <?php if (!isset($_SESSION['valid_pin'])): ?> 
            <form method="POST" class="form"> 
                <input type="text" name="pin" class="form-control mb-3" placeholder="Nhp m PIN"> 
                <button type="submit" class="btn btn-primary">Truy cp</button> 
            </form> 
             
 
            <?php if (isset($message)): ?> 
                <div class="message-container"> 
                    <?php 
                    if ($_SESSION['locked_until'] > time()) { 
                        $remainingTime = $_SESSION['locked_until'] - time(); 
                        echo '<div class="alert alert-danger mt-3" role="alert">Bn  nhp sai qu 3 ln. <span id="countdown"></span></div>'; 
                    ?> 
                        <script> 
                            // JavaScript  m ngc thi gian 
                            var remainingTime = <?php echo $remainingTime; ?>; 
                            var countdownElement = document.getElementById("countdown"); 
 
                            var countdownInterval = setInterval(function() { 
                                if (remainingTime <= 0) { 
                                    clearInterval(countdownInterval); 
                                    countdownElement.innerHTML = "Vui lng nhp li."; 
                                    localStorage.removeItem('locked_until'); // Xa khi localStorage khi ht thi gian 
                                } else { 
                                    countdownElement.innerHTML = "Vui lng nhp li sau " + remainingTime + " giy."; 
                                    remainingTime--; 
                                } 
                            }, 1000); // Cp nht mi giy 
                        </script> 
                    <?php 
                    } else { 
                        echo $message; 
                    } 
                    ?> 
                </div> 
            <?php endif; ?> 
        <?php else: ?> 
         
          
          
<button id="start-button">Scan</button> 
<div id="reader" style="display: none;"></div> 
<div id="result"></div> 
<div id="message"></div> 
 
<script> 
                         const startButton = document.getElementById('start-button'); 
                let html5QrcodeScanner; 
 
                function startScanning() { 
                    let reader = document.getElementById('reader'); 
                    reader.style.display = 'block'; 
                    let beepSound = document.getElementById('beep-sound');   
                   beepSound.play().catch(e => { 
                        console.error('Error playing sound:', e); 
                    }); 
                                     
 
                  function onScanSuccess(decodedText, decodedResult) { 
    beepSound.play(); 
    document.getElementById('result').innerText = `M QR: ${decodedText}`; 
// Chn gi tr mi vo URL 
// Chn gi tr mi vo URL 
const fullURL = savedURL + encodeURIComponent(decodedText); 
 
// M tab mi vi URL  xy dng 
const newTab = window.open(fullURL, '_blank'); 
 
if (newTab) { 
    let closeAttempts = 0; 
    const maxAttempts = 20; // 20 ln th (2 giy nu mi ln cch nhau 100ms) 
 
    const closeTab = () => { 
        try { 
            // Th truy cp mt thuc tnh ca tab mi  kim tra cross-origin 
            if (newTab.location.href === 'about:blank' || newTab.location.href.includes('about:blank')) { 
                // Nu tab  chuyn hng n about:blank, ng n 
                newTab.close(); 
                clearInterval(checkInterval); // Dng kim tra khi tab  ng 
            } else { 
                // Nu khng, chuyn hng n about:blank 
                newTab.location.href = 'about:blank'; 
            } 
        } catch (e) { 
            console.error('Error accessing new tab content:', e); 
            // Nu gp li cross-origin, chuyn hng n about:blank v ng tab 
            newTab.location.href = 'about:blank'; 
        } finally { 
            closeAttempts++; 
            if (closeAttempts >= maxAttempts) { 
                clearInterval(checkInterval); // Dng kim tra sau s ln th ti a 
                newTab.close(); // Th ng tab ln cui 
            } 
        } 
    }; 
 
    // Thit lp kim tra nh k mi 0.1 giy 
    const checkInterval = setInterval(() => { 
        closeTab(); 
    }, 300); // Kim tra mi 0.1 giy 
 
    // m bo kim tra v ng tab sau 2 giy 
    setTimeout(() => { 
        clearInterval(checkInterval); 
        closeTab(); // m bo tab c ng sau 2 giy 
    }, 300); 
 
    // Thm mt khong thi gian di hn  chc chn rng tab c ng 
    setTimeout(() => { 
        newTab.close(); 
    }, 500); // m bo kim tra v ng tab sau 5 giy 
     
     
     
     
} else { 
    alert('Popup was blocked by the browser!'); 
} 
 
 
 
 
 
 
                            fetch('save_log.php', { 
                                method: 'POST', 
                                headers: { 'Content-Type': 'application/json' }, 
                            body: JSON.stringify({ scannedCode: decodedText }) 
 
                        }) 
                        .then(response => response.json()) 
                        .then(data => { 
                            document.getElementById('message').innerText = data.message; 
                        }) 
                        .catch(error => { 
                            console.error('Li khi gi d liu:', error); 
                            document.getElementById('message').innerText = 'Li khi gi d liu. Vui lng th li.'; 
                        }); 
 
                        // Dng qu trnh qut v t li nt v trng thi "Scan" 
                        html5QrcodeScanner.stop().then(() => { 
                            console.log("Camera  dng."); 
                            startButton.innerText = 'Scan'; 
                            startButton.classList.remove('cancel'); 
                            startButton.removeEventListener('click', stopScanning);  
                            startButton.addEventListener('click', startScanning);  
                        }).catch(err => { 
                            console.error(`Li khi dng camera: ${err}`); 
                        }); 
                    } 
 
                    function onScanFailure(error) { 
                        console.warn(`M QR scan tht bi: ${error}`); 
                    } 
 
                    html5QrcodeScanner = new Html5Qrcode("reader"); 
 
                    html5QrcodeScanner.start( 
                        { facingMode: "environment" },  
                        { fps: 10, qrbox: { width: 250, height: 250 } }, 
                        onScanSuccess, 
                        onScanFailure 
                    ).catch(err => { 
                        console.error(`Li khi khi ng qut: ${err}`); 
                        alert('Li khi khi ng camera. Vui lng kim tra quyn truy cp camera ca trnh duyt.'); 
                    }); 
 
                    startButton.innerText = 'Hy'; 
                    startButton.classList.add('cancel'); 
                    startButton.removeEventListener('click', startScanning); 
                    startButton.addEventListener('click', stopScanning); 
                } 
 
                function stopScanning() { 
                    html5QrcodeScanner.stop().then(() => { 
                        console.log("Camera  dng."); 
                        startButton.innerText = 'Scan'; 
                        startButton.classList.remove('cancel'); 
 
                        // S dng setTimeout  tr hon vic thm li s kin 
                        setTimeout(() => { 
                            startButton.removeEventListener('click', stopScanning); 
                            startButton.addEventListener('click', startScanning); 
                        }, 0);  
                    }).catch(err => { 
                        console.error(`Li khi dng camera: ${err}`); 
                    }); 
                } 
 
                startButton.addEventListener('click', startScanning);  
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
 document.addEventListener('DOMContentLoaded', function () { 
            const sendCodeButton = document.getElementById('sendCode'); 
            const manualCodeInput = document.getElementById('manualCode'); 
               manualCodeInput.addEventListener('keydown', function(event) { 
                if (event.key === 'Enter') { 
                    event.preventDefault();  
                    sendCodeButton.click();  
                } 
            }); 
             setTimeout(() => { 
                    manualCodeInput.focus(); 
                }, 100);  
             
            sendCodeButton.addEventListener('click', () => { 
                const code = manualCodeInput.value.trim(); 
 
                if (code !== '') { 
                    // Kim tra tnh hp l ca m (v d: ch cha k t ch v s,  di ti thiu) 
                    const codePattern = /^[a-zA-Z0-9]{5,}$/; 
                    if (codePattern.test(code)) { 
                        document.getElementById('result').innerText = `M QR: ${code}`; 
      // Tip tc x l d liu nh khi gi m QR 
                        fetch('save_log.php', { 
                            method: 'POST', 
                            headers: { 'Content-Type': 'application/json' }, 
                            body: JSON.stringify({ scannedCode: code }) 
                        }) 
                        .then(response => response.json()) 
                        .then(data => { 
                            document.getElementById('message').innerText = data.message; 
                        }) 
                        .catch(error => { 
                            console.error('Li khi gi d liu:', error); 
                            document.getElementById('message').innerText = 'Li khi gi d liu. Vui lng th li.'; 
                        }); 
 
                        // Xa ni dung nhp th cng sau khi gi 
                        manualCodeInput.value = '';  
                    } else { 
                        document.getElementById('message').innerText = 'M vn n khng hp l. Vui lng nhp li.'; 
                    } 
                } else { 
                    document.getElementById('message').innerText = 'Vui lng nhp m vn n.'; 
                } 
// Chn gi tr mi vo URL 
const fullURL = savedURL + encodeURIComponent(code); 
 
   // Ly gi tr start_record t PHP 
    const startRecord = '<?php echo $start_record; ?>';  
 
    // Gi s bn  c hm ly gi tr ca decodedText 
    function getDecodedText() { 
        // y ch l v d, hy thay th bng hm thc s ca bn 
        return 'ENDTIME'; // Hoc bt k gi tr no khc 
    } 
 
 
    // Xc nh gi tr ca i s da trn iu kin 
    let additionalValue; 
    if (code === 'ENDTIME') { 
        additionalValue = 2; 
    } else { 
        additionalValue = 1; 
    } 
 
    // Tnh gi tr cui cng 
    const openURL = startRecord + additionalValue; 
 
    
     
// M tab mi vi URL  xy dng 
const newTab = window.open(fullURL, '_blank'); 
const newTab2 = window.open(openURL, '_blank'); 
 
 
if (newTab) { 
    let closeAttempts = 0; 
    const maxAttempts = 20; // 20 ln th (2 giy nu mi ln cch nhau 100ms) 
 
    const closeTab = () => { 
        try { 
            // Th truy cp mt thuc tnh ca tab mi  kim tra cross-origin 
            if (newTab.location.href === 'about:blank' || newTab.location.href.includes('about:blank')) { 
                // Nu tab  chuyn hng n about:blank, ng n 
                newTab.close(); 
                clearInterval(checkInterval); // Dng kim tra khi tab  ng 
            } else { 
                // Nu khng, chuyn hng n about:blank 
                newTab.location.href = 'about:blank'; 
            } 
        } catch (e) { 
            console.error('Error accessing new tab content:', e); 
            // Nu gp li cross-origin, chuyn hng n about:blank v ng tab 
            newTab.location.href = 'about:blank'; 
        } finally { 
            closeAttempts++; 
            if (closeAttempts >= maxAttempts) { 
                clearInterval(checkInterval); // Dng kim tra sau s ln th ti a 
                newTab.close(); // Th ng tab ln cui 
                 newTab2.close(); 
 
            } 
        } 
    }; 
 
    // Thit lp kim tra nh k mi 0.1 giy 
    const checkInterval = setInterval(() => { 
        closeTab(); 
         newTab2.close(); 
 
    }, 3300); // Kim tra mi 0.1 giy 
 
    // m bo kim tra v ng tab sau 2 giy 
    setTimeout(() => { 
        clearInterval(checkInterval); 
        closeTab(); // m bo tab c ng sau 2 giy 
        newTab2.close(); 
 
    }, 3300); 
 
    // Thm mt khong thi gian di hn  chc chn rng tab c ng 
    setTimeout(() => { 
        newTab.close(); 
     newTab2.close(); 
 
    }, 3500); // m bo kim tra v ng tab sau 5 giy 
 
 
let openURL = additionalTabURL; // Mc nh l URL ban u 
 
// Kim tra nu ni dung l "ENDTIME", thay i URL 
if (ni_dung_gi === "ENDTIME") { 
    openURL = additionalTabEndTimeURL; 
} 
 
const additionalTab = window.open(openURL, '_blank'); 
 
if (!additionalTab) { 
    alert('Popup was blocked by the browser for the additional tab!'); 
     
} else { 
    setTimeout(() => { 
        additionalTab.close(); 
    }, 1000); // ng tab mi sau 1 giy 
} 
 
     
     
 
} else { 
    alert('Popup was blocked by the browser!'); 
} 
 
            }); 
        }); 
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
 
document.addEventListener('DOMContentLoaded', function () { 
    const sendCodeButton = document.getElementById('sendCode'); 
    const manualCodeInput = document.getElementById('manualCode'); 
 
    // Focus vo  nhp liu khi trang c ti 
    manualCodeInput.focus(); 
 
    sendCodeButton.addEventListener('click', () => { 
        // ... (Phn x l gi d liu nh trc) 
 
        // ... 
 
        // Focus li vo  nhp liu sau khi gi 
        manualCodeInput.value = '';  
        manualCodeInput.focus();  
        
         
 
    }); 
}); 
 
            </script> 
          
          
          
         <form method="GET" class="form"> 
    <div class="input-group mb-3"> 
        <input type="text" id="manualCode" name="q" class="form-control" placeholder="Nhp th cng"> 
        <div class="input-group-append"> 
            <button type="button" id="sendCode" class="btn btn-primary">Gi</button> 
        </div> 
    </div> 
 
    <?php if (isset($message)) echo $message; ?> 
 
    <div class="input-group mb-3"> 
        <input type="text" class="form-control" placeholder="Nhp m vn n (ti thiu 5 k t)" id="query" name="q" value="<?php echo isset($searchQuery) ? htmlspecialchars($searchQuery) : ''; ?>"> 
        <div class="input-group-append"> 
            <button type="submit" class="btn btn-primary">Tm kim</button> 
        </div> 
    </div> 
</form> 
 
        <?php if (isset($matchingLines)): ?> 
            <div class="mt-3"> 
                <table class="table table-bordered"> 
                    <thead> 
                        <tr>   <th>Ti Video</th> 
                            <th>Thi gian Start</th> 
                            <th>Thi gian Kt thc</th> 
                            <th>M Vn n</th> 
                          
                        </tr> 
                    </thead> 
                    <tbody> 
                        <?php foreach ($matchingLines as $index => $line): ?> 
                            <tr><td><a href="download.php?tracking_code=<?php echo urlencode($line['tracking_code']); ?>" class="btn btn-success">Ti</a></td> 
                                <td><?php echo htmlspecialchars($line['start_time']); ?></td> 
                                <td><?php echo htmlspecialchars($line['end_time']); ?></td> 
                                <td><?php echo htmlspecialchars($line['tracking_code']); ?></td> 
                                 
                            </tr> 
                        <?php endforeach; ?> 
                    </tbody> 
                </table> 
            </div> 
             
             
        <?php endif; ?> 
     
           
         
    </div> 
</form> 
 
     
</form> 
 
 
             
           
        <?php endif; ?> 
    </div> 
  <!-- Footer with image --> 
    <footer> 
        <img src="footer.jpg" alt="Footer Image"> 
    </footer> 
 
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script> 
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js"></script> 
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> 
</body> 
 
</html> 
 
 
 

Did this file decode correctly?

Original Code

<?php
date_default_timezone_set('Asia/Ho_Chi_Minh');

session_start(); // Bt u phin lm vic

// Kim tra xem ngi dng  ng nhp cha
if (!isset($_SESSION['username'])) {
    header('Location: login.php');
    exit();
}

// Lu `username` vo cookie nu cha c
if (!isset($_COOKIE['username'])) {
    setcookie('username', $_SESSION['username'], time() + (86400 * 30), "/"); // 86400 giy = 1 ngy
}

// Kt ni ti c s d liu
$servername = "45.252.248.32";
$usernameDB = "tpxwahid_admin";
$passwordDB = "Camzone2023@";
$dbname = "tpxwahid_user_registration";

$conn = new mysqli($servername, $usernameDB, $passwordDB, $dbname);

// Kim tra kt ni
if ($conn->connect_error) {
    die("Kt ni tht bi: " . $conn->connect_error);
}

// Ly username t session
$username = $_SESSION['username']; 

// To truy vn SQL  ly URL v start_record t bng customerdata
$sql = "SELECT url, start_record FROM customerdata WHERE username = '$username'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    $url = $row["url"];
    $start_record = $row["start_record"];
    
    // Chuyn i URL v start_record t PHP sang JavaScript v hin th
    echo "<script>";
    echo "const savedURL = '" . $url . "';";
    echo "const openurl = '" . $start_record . "';";
    echo "</script>";
} else {
    echo "<script>";
    echo "alert('Lin H Zalo - 0867834822  c kch hot.');";
    echo "</script>";
}

$conn->close();

// Kt ni ti c s d liu
$servername = "45.252.248.32";
$usernameDB = "tpxwahid_admin";
$passwordDB = "Camzone2023@";
$dbname = "tpxwahid_user_registration";

$conn = new mysqli($servername, $usernameDB, $passwordDB, $dbname);

// Kim tra kt ni
if ($conn->connect_error) {
    die("Kt ni ti c s d liu tht bi: " . $conn->connect_error);
}

// Thm thi gian vo log
$currentTime = date('Y-m-d H:i:s');
$location = 'Hanoi';
$trackingCode = '123456789';

// X l khi ngi dng nhp m PIN
if (isset($_POST['pin'])) {
    // Kim tra xem c b kha khng
    if ($_SESSION['locked_until'] > time()) {
        $remainingTime = $_SESSION['locked_until'] - time();
        $message = '<div class="alert alert-danger mt-3" role="alert">Bn  nhp sai qu 3 ln. Vui lng nhp li sau ' . $remainingTime . ' giy.</div>';
    } else {
        $enteredPin = $_POST['pin'];

        // Kt ni ti c s d liu
        $conn = new mysqli($servername, $usernameDB, $passwordDB, $dbname);

        // Kim tra kt ni
        if ($conn->connect_error) {
            die("Kt ni ti c s d liu tht bi: " . $conn->connect_error);
        }

        // Ly thng tin username t cookie  ng nhp
        $usernameFromCookie = $_COOKIE['username'];

        // Thc hin truy vn  tm kim bn ghi vi m PIN v username khp nhau
        $sql = "SELECT * FROM customerdata WHERE PIN = '$enteredPin' AND Username = '$usernameFromCookie'";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            // M PIN v username t cookie u khp vi bn ghi trong c s d liu, cho php vt qua
            $row = $result->fetch_assoc();
            $_SESSION['valid_pin'] = $enteredPin;

            // Kim tra v lu cookie vi m PIN  hp l
            if (isset($_COOKIE['saved_pin'])) {
                unset($_COOKIE['saved_pin']);
                setcookie('saved_pin', null, -1, '/');
            }
            setcookie('saved_pin', $enteredPin, time() + (86400 * 30), "/"); // 86400 giy = 1 ngy

            // Kim tra v to bng log nu cha tn ti
            $createTableSql = "CREATE TABLE IF NOT EXISTS $tableName (
                id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
                start_time DATETIME,
                end_time DATETIME,
                location VARCHAR(255),
                tracking_code VARCHAR(255)
            )";

            if ($conn->query($createTableSql) === TRUE) {
                // Bng log  c to hoc tn ti

                // Reset s ln th sai v thi gian kha khi nhp ng
                $_SESSION['failed_attempts'] = 0;
                $_SESSION['locked_until'] = 0;
            } else {
                // Li khi to bng log
                $message = '<div class="alert alert-danger mt-3" role="alert">Li khi to bng log: ' . $conn->error . '</div>';
            }
        } else {
            // M PIN hoc username khng khp hoc khng tm thy
            $_SESSION['failed_attempts']++;

            if ($_SESSION['failed_attempts'] >= 3) {
                // Tnh ton thi gian kha
                $lockTime = 60 * pow(2, $_SESSION['failed_attempts'] - 3); // 60s * 2^(s ln sai - 3)
                $lockTime = min($lockTime, 180); // Ti a 3 pht (180 giy)
                $_SESSION['locked_until'] = time() + $lockTime;

                $message = '<div class="alert alert-danger mt-3" role="alert">Bn  nhp sai qu 3 ln. Vui lng nhp li sau ' . $lockTime . ' giy.</div>';
            } else {
                $message = '<div class="alert alert-danger mt-3" role="alert">M PIN hoc thng tin ng nhp khng ng.</div>';
            }
        }

        // ng kt ni
        $conn->close();
    }
}

// S dng hng s cho tn cookie
define('COOKIE_PIN', 'saved_pin');

$logFilePath = null;
$message = null;
$matchingLines = null;

// Kt ni ti c s d liu
$servername = "45.252.248.32";
$usernameDB = "tpxwahid_admin";
$passwordDB = "Camzone2023@";
$dbname = "tpxwahid_customer_db";

$conn = new mysqli($servername, $usernameDB, $passwordDB, $dbname);

// Kim tra kt ni
if ($conn->connect_error) {
    die("Kt ni tht bi: " . $conn->connect_error);
}

// To tn bng log tng ng vi username
$tableName = "log_" . $usernameFromCookie;

// Kim tra xem c m PIN hp l trong session hoc cookie
if (isset($_SESSION['valid_pin']) || isset($_COOKIE['COOKIE_PIN'])) {
    $savedPin = isset($_SESSION['valid_pin']) ? $_SESSION['valid_pin'] : $_COOKIE['COOKIE_PIN'];
    $usernameFromCookie = $_COOKIE['username'];  // Ly username t cookie
    $url = $customerData[$savedPin]['url'];

    // X l tm kim khi  c m PIN hp l v c truy vn
    if (isset($_GET['q'])) {
        $searchQuery = htmlspecialchars($_GET['q'], ENT_QUOTES, 'UTF-8');
        $searchQuery = str_replace('-', '/', $searchQuery);
        $searchQuery = trim($searchQuery);

        $isDateQuery = preg_match('/^\d{2}\/\d{2}\/\d{4}$/', $searchQuery);
        $isCodeQuery = (strlen($searchQuery) >= 5);

        if ($isDateQuery || $isCodeQuery) {
            $tableName = 'log_' . $usernameFromCookie;
            $query = "SELECT * FROM $tableName WHERE 1=1";

            if ($isDateQuery) {
                $date = DateTime::createFromFormat('d/m/Y', $searchQuery)->format('Y-m-d');
                $query .= " AND DATE(`start_time`) = '$date'";
            }

            if ($isCodeQuery) {
                $query .= " AND `tracking_code` LIKE '%$searchQuery%'";
            }

            $result = $conn->query($query);

            if ($result) {
                $matchingLines = [];
                while ($row = $result->fetch_assoc()) {
                    // nh dng li thi gian hin th
                    $formattedStartTime = DateTime::createFromFormat('Y-m-d H:i:s', $row['start_time'])->format('d/m/Y H:i:s');
                    $formattedEndTime = $row['end_time'] ? DateTime::createFromFormat('Y-m-d H:i:s', $row['end_time'])->format('d/m/Y H:i:s') : 'N/A';
                    $row['start_time'] = $formattedStartTime;
                    $row['end_time'] = $formattedEndTime;
                    $matchingLines[] = $row;
                }

                // PHN TRANG
                $itemsPerPage = 100;
                $currentPage = isset($_GET['page']) ? max(1, (int)$_GET['page']) : 1; // m bo trang hin ti lun >= 1
                $startIndex = ($currentPage - 1) * $itemsPerPage;
                $totalResults = count($matchingLines);
                $totalPages = ceil($totalResults / $itemsPerPage); // Tnh tng s trang
                $matchingLines = array_slice($matchingLines, $startIndex, $itemsPerPage);
            } else {
                $message = '<div class="alert alert-danger mt-3" role="alert">Khng th c d liu t c s d liu. Vui lng kim tra li.</div>';
            }
        } else {
            $message = '<div class="alert alert-info mt-3" role="alert">Truy vn khng hp l. Vui lng nhp m vn n (ti thiu 5 k t).</div>';
        }
    }
}

// Kim tra xem c yu cu ti xung khng
if (isset($_GET['download']) && $_GET['download'] == 1 && isset($matchingLines)) {
    $txtContent = "STT\tThi gian Start\tThi gian Kt thc\tBn ng\tM Vn n\n";
    $stt = 1;

    // Lc ton b kt qu, khng ch trang hin ti
    $query = "SELECT * FROM log_$usernameFromCookie WHERE 1=1";

    if ($isDateQuery) {
        $date = DateTime::createFromFormat('d/m/Y', $searchQuery)->format('Y-m-d');
        $query .= " AND DATE(`start_time`) = '$date'";
    }

    if ($isCodeQuery) {
        $query .= " AND `tracking_code` LIKE '%$searchQuery%'";
    }

    $result = $conn->query($query);

    if ($result) {
        while ($row = $result->fetch_assoc()) {
            // nh dng li thi gian hin th
            $formattedStartTime = DateTime::createFromFormat('Y-m-d H:i:s', $row['start_time'])->format('d/m/Y H:i:s');
            $formattedEndTime = $row['end_time'] ? DateTime::createFromFormat('Y-m-d H:i:s', $row['end_time'])->format('d/m/Y H:i:s') : 'N/A';
            $txtContent .= $stt++ . "\t";
            $txtContent .= $formattedStartTime . "\t"; // Hin th thi gian bt u  nh dng
            $txtContent .= $formattedEndTime . "\t"; // Hin th thi gian kt thc  nh dng
            $txtContent .= $row['location'] . "\t";
            $txtContent .= $row['tracking_code'] . "\n";
        }
    }

    header('Content-Type: text/plain');
    header('Content-Disposition: attachment;filename="ket_qua_tim_kiem.txt"');
    echo $txtContent;
    exit;
}
?>

<!DOCTYPE html>
<html>

<head>
    <title>Tra cu n Hng</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">


    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
     <script src="html5-qrcode.min.js"></script>
     <audio id="beep-sound" src="beep2.mp3" preload="auto"></audio>

    <style>
    
        html {
              touch-action: manipulation;
        }  
        body {
            font-family: sans-serif;
            background-color: #f4f4f4;
        }

        .container {
            background-color: #fff;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
        }

        h1 {
            text-align: center;
            margin-bottom: 20px;
            color: #333;
        }

        .form-control {
            border-radius: 5px;
        }

        .btn-primary {
            background-color: #007bff;
            border: none;
            border-radius: 5px;
        }

        .table {
            margin-top: 20px;
        }

        .table th,
        .table td {
            vertical-align: middle;
            text-align: center;
        }

        /* Ti u cho mobile */
        @media (max-width: 768px) {
            .container {
                padding: 10px;
            }

            h1 {
                font-size: 1.6rem;
            }

            .table {
                font-size: 0.8rem;
            }

            .btn-primary {
                display: block;
                width: 100%;
                padding: 5px 15px;
            }
        }

        /* Highlight kt qu tm kim */
        .highlight {
            background-color: yellow;
        }

        #reader {
            width: 50%;
            max-width: 200px;
            margin: auto;
            display: none;
        }
        
        #result, #message {
            margin-top: 20px;
            font-size: 18px;
            font-weight: bold;
        }

        #result {
            color: green;
        }

        #message {
            color: red;
        }

       #start-button {
    display: block;
    padding: 10px 30px; /* Reduced height padding */
    font-size: 20px;
    font-weight: bold;
    color: white;
    background-color: #FF2400; /* Red */
    border: none;
    border-radius: 8px; /* Rounded corners */
    text-align: center;
    cursor: pointer;
    outline: none;
    margin: 20px auto; /* Center the button */
}


  h1 {
    margin-top: 20px; /* t margin-top l 20px */
    font-size: 24px; /* t kch thc ch l 24px, bn c th iu chnh gi tr ny ty  */
}

     footer {
            position: fixed;
            bottom: 0;
            width: 100%;
            text-align: center;
            background-color: black;
        }
        footer img {
            max-width: 100%;
            height: auto;
        }
        @media (max-width: 767px) {
            body {
                font-size: 14px;
            }
            .container {
                padding: 10px;
            }
            footer img {
                content: url('footer-mobile.jpg');
            }
        }
    </style>
</head>

<body>
  <div class="container">
        <a href="customer_management.php" class="btn btn-info">Thng tin ti khon</a>

        <h1>CamSight by Camzone.vn</h1>
     <?php if (!isset($_SESSION['valid_pin'])): ?>
            <form method="POST" class="form">
                <input type="text" name="pin" class="form-control mb-3" placeholder="Nhp m PIN">
                <button type="submit" class="btn btn-primary">Truy cp</button>
            </form>
            

            <?php if (isset($message)): ?>
                <div class="message-container">
                    <?php
                    if ($_SESSION['locked_until'] > time()) {
                        $remainingTime = $_SESSION['locked_until'] - time();
                        echo '<div class="alert alert-danger mt-3" role="alert">Bn  nhp sai qu 3 ln. <span id="countdown"></span></div>';
                    ?>
                        <script>
                            // JavaScript  m ngc thi gian
                            var remainingTime = <?php echo $remainingTime; ?>;
                            var countdownElement = document.getElementById("countdown");

                            var countdownInterval = setInterval(function() {
                                if (remainingTime <= 0) {
                                    clearInterval(countdownInterval);
                                    countdownElement.innerHTML = "Vui lng nhp li.";
                                    localStorage.removeItem('locked_until'); // Xa khi localStorage khi ht thi gian
                                } else {
                                    countdownElement.innerHTML = "Vui lng nhp li sau " + remainingTime + " giy.";
                                    remainingTime--;
                                }
                            }, 1000); // Cp nht mi giy
                        </script>
                    <?php
                    } else {
                        echo $message;
                    }
                    ?>
                </div>
            <?php endif; ?>
        <?php else: ?>
        
         
         
<button id="start-button">Scan</button>
<div id="reader" style="display: none;"></div>
<div id="result"></div>
<div id="message"></div>

<script>
                         const startButton = document.getElementById('start-button');
                let html5QrcodeScanner;

                function startScanning() {
                    let reader = document.getElementById('reader');
                    reader.style.display = 'block';
                    let beepSound = document.getElementById('beep-sound');  
                   beepSound.play().catch(e => {
                        console.error('Error playing sound:', e);
                    });
                                    

                  function onScanSuccess(decodedText, decodedResult) {
    beepSound.play();
    document.getElementById('result').innerText = `M QR: ${decodedText}`;
// Chn gi tr mi vo URL
// Chn gi tr mi vo URL
const fullURL = savedURL + encodeURIComponent(decodedText);

// M tab mi vi URL  xy dng
const newTab = window.open(fullURL, '_blank');

if (newTab) {
    let closeAttempts = 0;
    const maxAttempts = 20; // 20 ln th (2 giy nu mi ln cch nhau 100ms)

    const closeTab = () => {
        try {
            // Th truy cp mt thuc tnh ca tab mi  kim tra cross-origin
            if (newTab.location.href === 'about:blank' || newTab.location.href.includes('about:blank')) {
                // Nu tab  chuyn hng n about:blank, ng n
                newTab.close();
                clearInterval(checkInterval); // Dng kim tra khi tab  ng
            } else {
                // Nu khng, chuyn hng n about:blank
                newTab.location.href = 'about:blank';
            }
        } catch (e) {
            console.error('Error accessing new tab content:', e);
            // Nu gp li cross-origin, chuyn hng n about:blank v ng tab
            newTab.location.href = 'about:blank';
        } finally {
            closeAttempts++;
            if (closeAttempts >= maxAttempts) {
                clearInterval(checkInterval); // Dng kim tra sau s ln th ti a
                newTab.close(); // Th ng tab ln cui
            }
        }
    };

    // Thit lp kim tra nh k mi 0.1 giy
    const checkInterval = setInterval(() => {
        closeTab();
    }, 300); // Kim tra mi 0.1 giy

    // m bo kim tra v ng tab sau 2 giy
    setTimeout(() => {
        clearInterval(checkInterval);
        closeTab(); // m bo tab c ng sau 2 giy
    }, 300);

    // Thm mt khong thi gian di hn  chc chn rng tab c ng
    setTimeout(() => {
        newTab.close();
    }, 500); // m bo kim tra v ng tab sau 5 giy
    
    
    
    
} else {
    alert('Popup was blocked by the browser!');
}






                            fetch('save_log.php', {
                                method: 'POST',
                                headers: { 'Content-Type': 'application/json' },
                            body: JSON.stringify({ scannedCode: decodedText })

                        })
                        .then(response => response.json())
                        .then(data => {
                            document.getElementById('message').innerText = data.message;
                        })
                        .catch(error => {
                            console.error('Li khi gi d liu:', error);
                            document.getElementById('message').innerText = 'Li khi gi d liu. Vui lng th li.';
                        });

                        // Dng qu trnh qut v t li nt v trng thi "Scan"
                        html5QrcodeScanner.stop().then(() => {
                            console.log("Camera  dng.");
                            startButton.innerText = 'Scan';
                            startButton.classList.remove('cancel');
                            startButton.removeEventListener('click', stopScanning); 
                            startButton.addEventListener('click', startScanning); 
                        }).catch(err => {
                            console.error(`Li khi dng camera: ${err}`);
                        });
                    }

                    function onScanFailure(error) {
                        console.warn(`M QR scan tht bi: ${error}`);
                    }

                    html5QrcodeScanner = new Html5Qrcode("reader");

                    html5QrcodeScanner.start(
                        { facingMode: "environment" }, 
                        { fps: 10, qrbox: { width: 250, height: 250 } },
                        onScanSuccess,
                        onScanFailure
                    ).catch(err => {
                        console.error(`Li khi khi ng qut: ${err}`);
                        alert('Li khi khi ng camera. Vui lng kim tra quyn truy cp camera ca trnh duyt.');
                    });

                    startButton.innerText = 'Hy';
                    startButton.classList.add('cancel');
                    startButton.removeEventListener('click', startScanning);
                    startButton.addEventListener('click', stopScanning);
                }

                function stopScanning() {
                    html5QrcodeScanner.stop().then(() => {
                        console.log("Camera  dng.");
                        startButton.innerText = 'Scan';
                        startButton.classList.remove('cancel');

                        // S dng setTimeout  tr hon vic thm li s kin
                        setTimeout(() => {
                            startButton.removeEventListener('click', stopScanning);
                            startButton.addEventListener('click', startScanning);
                        }, 0); 
                    }).catch(err => {
                        console.error(`Li khi dng camera: ${err}`);
                    });
                }

                startButton.addEventListener('click', startScanning); 
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
 document.addEventListener('DOMContentLoaded', function () {
            const sendCodeButton = document.getElementById('sendCode');
            const manualCodeInput = document.getElementById('manualCode');
               manualCodeInput.addEventListener('keydown', function(event) {
                if (event.key === 'Enter') {
                    event.preventDefault(); 
                    sendCodeButton.click(); 
                }
            });
             setTimeout(() => {
                    manualCodeInput.focus();
                }, 100); 
            
            sendCodeButton.addEventListener('click', () => {
                const code = manualCodeInput.value.trim();

                if (code !== '') {
                    // Kim tra tnh hp l ca m (v d: ch cha k t ch v s,  di ti thiu)
                    const codePattern = /^[a-zA-Z0-9]{5,}$/;
                    if (codePattern.test(code)) {
                        document.getElementById('result').innerText = `M QR: ${code}`;
      // Tip tc x l d liu nh khi gi m QR
                        fetch('save_log.php', {
                            method: 'POST',
                            headers: { 'Content-Type': 'application/json' },
                            body: JSON.stringify({ scannedCode: code })
                        })
                        .then(response => response.json())
                        .then(data => {
                            document.getElementById('message').innerText = data.message;
                        })
                        .catch(error => {
                            console.error('Li khi gi d liu:', error);
                            document.getElementById('message').innerText = 'Li khi gi d liu. Vui lng th li.';
                        });

                        // Xa ni dung nhp th cng sau khi gi
                        manualCodeInput.value = ''; 
                    } else {
                        document.getElementById('message').innerText = 'M vn n khng hp l. Vui lng nhp li.';
                    }
                } else {
                    document.getElementById('message').innerText = 'Vui lng nhp m vn n.';
                }
// Chn gi tr mi vo URL
const fullURL = savedURL + encodeURIComponent(code);

   // Ly gi tr start_record t PHP
    const startRecord = '<?php echo $start_record; ?>'; 

    // Gi s bn  c hm ly gi tr ca decodedText
    function getDecodedText() {
        // y ch l v d, hy thay th bng hm thc s ca bn
        return 'ENDTIME'; // Hoc bt k gi tr no khc
    }


    // Xc nh gi tr ca i s da trn iu kin
    let additionalValue;
    if (code === 'ENDTIME') {
        additionalValue = 2;
    } else {
        additionalValue = 1;
    }

    // Tnh gi tr cui cng
    const openURL = startRecord + additionalValue;

   
    
// M tab mi vi URL  xy dng
const newTab = window.open(fullURL, '_blank');
const newTab2 = window.open(openURL, '_blank');


if (newTab) {
    let closeAttempts = 0;
    const maxAttempts = 20; // 20 ln th (2 giy nu mi ln cch nhau 100ms)

    const closeTab = () => {
        try {
            // Th truy cp mt thuc tnh ca tab mi  kim tra cross-origin
            if (newTab.location.href === 'about:blank' || newTab.location.href.includes('about:blank')) {
                // Nu tab  chuyn hng n about:blank, ng n
                newTab.close();
                clearInterval(checkInterval); // Dng kim tra khi tab  ng
            } else {
                // Nu khng, chuyn hng n about:blank
                newTab.location.href = 'about:blank';
            }
        } catch (e) {
            console.error('Error accessing new tab content:', e);
            // Nu gp li cross-origin, chuyn hng n about:blank v ng tab
            newTab.location.href = 'about:blank';
        } finally {
            closeAttempts++;
            if (closeAttempts >= maxAttempts) {
                clearInterval(checkInterval); // Dng kim tra sau s ln th ti a
                newTab.close(); // Th ng tab ln cui
                 newTab2.close();

            }
        }
    };

    // Thit lp kim tra nh k mi 0.1 giy
    const checkInterval = setInterval(() => {
        closeTab();
         newTab2.close();

    }, 3300); // Kim tra mi 0.1 giy

    // m bo kim tra v ng tab sau 2 giy
    setTimeout(() => {
        clearInterval(checkInterval);
        closeTab(); // m bo tab c ng sau 2 giy
        newTab2.close();

    }, 3300);

    // Thm mt khong thi gian di hn  chc chn rng tab c ng
    setTimeout(() => {
        newTab.close();
     newTab2.close();

    }, 3500); // m bo kim tra v ng tab sau 5 giy


let openURL = additionalTabURL; // Mc nh l URL ban u

// Kim tra nu ni dung l "ENDTIME", thay i URL
if (ni_dung_gi === "ENDTIME") {
    openURL = additionalTabEndTimeURL;
}

const additionalTab = window.open(openURL, '_blank');

if (!additionalTab) {
    alert('Popup was blocked by the browser for the additional tab!');
    
} else {
    setTimeout(() => {
        additionalTab.close();
    }, 1000); // ng tab mi sau 1 giy
}

    
    

} else {
    alert('Popup was blocked by the browser!');
}

            });
        });
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        

document.addEventListener('DOMContentLoaded', function () {
    const sendCodeButton = document.getElementById('sendCode');
    const manualCodeInput = document.getElementById('manualCode');

    // Focus vo  nhp liu khi trang c ti
    manualCodeInput.focus();

    sendCodeButton.addEventListener('click', () => {
        // ... (Phn x l gi d liu nh trc)

        // ...

        // Focus li vo  nhp liu sau khi gi
        manualCodeInput.value = ''; 
        manualCodeInput.focus(); 
       
        

    });
});

            </script>
         
         
         
         <form method="GET" class="form">
    <div class="input-group mb-3">
        <input type="text" id="manualCode" name="q" class="form-control" placeholder="Nhp th cng">
        <div class="input-group-append">
            <button type="button" id="sendCode" class="btn btn-primary">Gi</button>
        </div>
    </div>

    <?php if (isset($message)) echo $message; ?>

    <div class="input-group mb-3">
        <input type="text" class="form-control" placeholder="Nhp m vn n (ti thiu 5 k t)" id="query" name="q" value="<?php echo isset($searchQuery) ? htmlspecialchars($searchQuery) : ''; ?>">
        <div class="input-group-append">
            <button type="submit" class="btn btn-primary">Tm kim</button>
        </div>
    </div>
</form>

        <?php if (isset($matchingLines)): ?>
            <div class="mt-3">
                <table class="table table-bordered">
                    <thead>
                        <tr>   <th>Ti Video</th>
                            <th>Thi gian Start</th>
                            <th>Thi gian Kt thc</th>
                            <th>M Vn n</th>
                         
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($matchingLines as $index => $line): ?>
                            <tr><td><a href="download.php?tracking_code=<?php echo urlencode($line['tracking_code']); ?>" class="btn btn-success">Ti</a></td>
                                <td><?php echo htmlspecialchars($line['start_time']); ?></td>
                                <td><?php echo htmlspecialchars($line['end_time']); ?></td>
                                <td><?php echo htmlspecialchars($line['tracking_code']); ?></td>
                                
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
            
            
        <?php endif; ?>
    
          
        
    </div>
</form>

    
</form>


            
          
        <?php endif; ?>
    </div>
  <!-- Footer with image -->
    <footer>
        <img src="footer.jpg" alt="Footer Image">
    </footer>

<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>

</html>



Function Calls

None

Variables

None

Stats

MD5 e55f7f1782d903f847473649baf4a659
Eval Count 0
Decode Time 84 ms