📁 Folder Navigator
Position:
Root
/
faith
/
vpnp1
/
admin
Create
Folders
📁 access
Rename
Copy
Delete
📁 branding
Rename
Copy
Delete
📁 contacts
Rename
Copy
Delete
📁 promotion
Rename
Copy
Delete
📁 training
Rename
Copy
Delete
Files
📄 branding.zip
📄 clean_xml.php
📄 error_log
📄 index.php
📄 index2.php
📄 terms.php
📝 File Editor
Editing:
index2.php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>App Member Access System</title> <style> html, body { margin: 0; padding: 0; height: 100%; width: 100%; font-family: 'Segoe UI', sans-serif; background: #0b0b0b; color: #e0e0e0; overflow: hidden; } /* Compact Status Bar */ #status-bar { display: none; position: fixed; top: 0; width: 100%; height: 60px; background: #161616; border-bottom: 2px solid #333; z-index: 1000; grid-template-columns: 1.2fr 3fr 1fr 0.5fr; align-items: center; padding: 0 15px; box-sizing: border-box; } .info-group { text-align: left; font-size: 11px; line-height: 1.2; } .highlight { color: #00ff00; font-weight: bold; font-family: monospace; } .content-container { display: flex; justify-content: center; gap: 6px; } .box { padding: 5px 10px; border: 1px solid #444; border-radius: 3px; background: #222; opacity: 1; transition: 0.2s; cursor: pointer; font-weight: bold; font-size: 11px; text-transform: uppercase; color: #00ff00; border-color: #00ff00; } .box:hover { background: #333; } /* Timer Display */ #timer { color: #ff4444; font-size: 9px; font-weight: bold; font-family: monospace; text-align: center; } .logout-btn { background: #dc3545; color: white; border: none; padding: 5px 10px; border-radius: 3px; font-weight: bold; cursor: pointer; font-size: 10px; } #viewer-container { display: none; position: absolute; top: 60px; left: 0; width: 100%; height: calc(100vh - 60px); background: #fff; } iframe { width: 100%; height: 100%; border: none; display: block; } /* Entry UI */ #manual-entry { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100vh; gap: 10px; } #manual-entry input { background: #222; border: 1px solid #444; color: #00ff00; padding: 10px; border-radius: 4px; text-align: center; } #manual-entry button { background: #007bff; color: white; border: none; padding: 10px 20px; border-radius: 4px; cursor: pointer; font-weight: bold; } </style> </head> <body> <div id="manual-entry"> <div style="color: #ff4444; font-size: 20px; margin-bottom: 10px;">ADMIN LOGIN PORTAL</div> <input type="text" id="manual-vid" placeholder="VIRTUAL ID"> <input type="text" id="manual-key" placeholder="ACCESS KEY"> <button id="your_existing_btn_id" onclick="checkManualAuth()">AUTHORIZE</button> <div style="border: 1px transparent; padding: 2px; height: 100px; width: 400px; font-size: 11px; overflow-y: none; marginbottom: px;"> <center>© 2015 N4Sappme.com™ All rights reserved.PATENT PENDING-Unauthorized replication, reverse-engineering, or exploitation of this proprietary security architecture is strictly prohibited.<br><a href="www.n4sappme.com/apphome\support/terms.php" target="_blank">Read FullScreen Terms Of Use</a><br> <label> <input type="checkbox" id="legal_gatekeeper" onchange="unlockMyExistingLogin()"> I HAVE READ AND ACCEPT THE FULL TERMS OF USE. </label> </center> <br> </div> <br><br> <!-- 2. The Simple Gatekeeper Script --> <script> function unlockMyExistingLogin() { const checkbox = document.getElementById("legal_gatekeeper"); // FIND YOUR EXISTING BUTTON (Replace 'your_existing_btn_id' with your actual buttonID) const myLoginButton = document.getElementById("your_existing_btn_id"); if (checkbox.checked === true) { // Remove the locks and let your existing patent procedures take over normally myLoginButton.disabled = false; myLoginButton.removeAttribute("tabindex"); myLoginButton.style.opacity = "1"; myLoginButton.style.pointerEvents = "auto"; } else { // Keep it safely locked away from focus and clicks myLoginButton.disabled = true; myLoginButton.setAttribute("tabindex", "-1"); myLoginButton.style.opacity = "0.5"; myLoginButton.style.pointerEvents = "none"; myLoginButton.blur(); } } // Run once on page load to ensure it starts locked without altering your HTML tags document.addEventListener("DOMContentLoaded", function() { unlockMyExistingLogin(); }); </script> </div> <!-- Protected Interface --> <div id="status-bar"> <div class="info-group"> <div>ID:<span id="display-id" class="highlight">--</span></div> <div>KEY:<span id="display-key" class="highlight">--</span></div> </div> <!-- UPDATED TAB ARRANGEMENT WITH ADSPACES --> <div class="content-container"> <div class="box" onclick="loadPage('access/dash.php')">ADMIN DASHBOARD</div> </div> <div id="timer">00:00:00:00</div> <div style="text-align: right;"> <button class="logout-btn" onclick="location.reload()">Exit</button> </div> </div> <div id="viewer-container"> <iframe id="content-viewer" src="access/dash.php"?expires=<?php echo urlencode($_SESSION['expires'] ?? ''); ?>></iframe> </div> <script> let countdown; window.onload = function() { const urlParams = new URLSearchParams(window.location.search); const vid = urlParams.get('vid'); const key = urlParams.get('key'); if (vid && key) attemptAuth(vid, key); }; function checkManualAuth() { const vid = document.getElementById('manual-vid').value.trim(); const key = document.getElementById('manual-key').value.trim(); attemptAuth(vid, key); } async function attemptAuth(vid, key) { try { const response = await fetch('access/vidkeys/adminmasterusers.xml'); const text = await response.text(); const parser = new DOMParser(); const xml = parser.parseFromString(text, "text/xml"); const users = xml.getElementsByTagName("user"); for (let user of users) { const xmlID = user.getElementsByTagName("virtual_id")[0].textContent; const xmlKey = user.getElementsByTagName("key")[0].textContent; if (vid === xmlID && key === xmlKey) { const expiry = parseInt(user.getElementsByTagName("expires")[0].textContent); // ONE LINE: Forces masterusers.xml to clean itself right now fetch('clean_xml.php').catch(err => console.error(err)); fetch('auto_purge.php').catch(err => console.error(err)); fetch('purge_chat.php').catch(err => console.error(err)); fetch('purge_post.php').catch(err => console.error(err)); startSession(vid, key, expiry); return; } } alert("Invalid Credentials."); } catch (err) { alert("System Error: accesskeys not found or may have exspired."); } } function startSession(id, key, expiry) { sessionStorage.setItem('admin_expiry_time',expiry); const secondsLeft = expiry - Math.floor(Date.now() / 1000); if (secondsLeft <= 0) { alert("Time Expired."); return; } document.getElementById('manual-entry').style.display = 'none'; document.getElementById('status-bar').style.display = 'grid'; document.getElementById('viewer-container').style.display = 'block'; document.getElementById('display-id').innerText = id; document.getElementById('display-key').innerText = key; startClock(secondsLeft, id, key); } function loadPage(url) { document.getElementById('content-viewer').src = url; } function startClock(time, id, key) { clearInterval(countdown); countdown = setInterval(() => { if (--time < 0) { clearInterval(countdown); alert(`TIME EXPIRED\nID: ${id}\nKey: ${key}`); location.reload(); } else { let d = Math.floor(time / 86400); let h = Math.floor((time % 86400) / 3600); let m = Math.floor((time % 3600) / 60); let s = time % 60; document.getElementById('timer').innerText = `${String(d).padStart(2,'0')}:${String(h).padStart(2,'0')}:${String(m).padStart(2,'0')}:${String(s).padStart(2,'0')}`; } }, 1000); } </script> </body> </html> <?php exit; ?>
💾 Save Changes