VPSSIM Demo - root@server
========================================================================= VPSSIM (6.3.3) - Quản Lý VPS/Server by VPSSIM.COM ========================================================================= Phiên Bản: PRO | Main Menu |Kích Hoạt: 11/06/25 ========================================================================= Websites: 10 | Databases: 6 | Home Free: 28 GB | Inodes Used: 2% ========================================================================= 1) Thêm Website & Code 20) Sao Lưu Data Tới VPS Backup 2) Fix Lỗi Permission & Chown 21) Sao Lưu Backup Tới Google Drive 3) Xóa Web, Domain & Subsite 22) Chuyển Server Siêu Nhanh 4) Sao Lưu & Phục Hồi Website 23) Quản Lý Resilio Sync 5) Quản Lý & Quản Lý Database 24) Cài Đặt Let's Encrypt SSL 6) Sao Lưu & Phục Hồi Database 25) Cài Đặt CloudFlare SSL & Paid SSL 7) Tiện Ích WordPress/Flarum/YourLS 26) Công Cụ Tiện Ích Khác 8) Quản Lý Wordpress Multisite 27) Thay Đổi Phiên Bản PHP 9) Quản Lý phpMyAdmin, Filemanager 28) Config Nginx: GeoIP,Error Pages.. 10) Quản Lý Zend OPcache 29) Cài Đặt CloudFlare Dynamic DNS 11) Quản Lý Redis Cache/Memcache 30) Cài Đặt & Cấu Hình V2Ray (VPN) 12) Quản Lý Tài Khoản FTP 31) Cài Đặt Múi Giờ Server Timezone 13) Quản Lý Swap / Log File 32) Thông Tin Quản Lý VPS ⚙ Status 14) Quản Lý Cronjob 33) VPSSIM Shortcut / Update System 15) Tùy Chỉnh Cấu Hình PHP 34) Xóa Caches / Tự Động Chạy VPSSIM 16) Bảo Mật Server & Website 35) Auto Check Login/Nginx/MySQL/PHP 17) Quản Lý CSF Firewall 36) Change Language To English 18) Quản Lý IPtables Firewall 37) Cập Nhật Phiên Bản Mới 19) Config Chống DDoS & Bảo Vệ Web 38) Nâng Cấp VPSSIM PRO ========================================================================= Lựa chọn của bạn [0 -Thoát]:
? Help
Error message will appear here
===========================
Nhấn phím bất kỳ để đóng
// 🚑 QUICK MOBILE INPUT FIX // Thêm ngay sau jQuery hoặc ở cuối trang document.addEventListener('DOMContentLoaded', function() { console.log('🚑 Quick mobile fix loading...'); // Force disable all conflicting scripts on mobile const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || window.innerWidth <= 768; if (isMobile) { console.log('📱 Mobile detected - applying fixes...'); // 1. Remove ALL touch event listeners from document const newDocument = document.cloneNode(true); // 2. Force input to be completely visible and functional setTimeout(() => { const terminalInput = document.getElementById('terminalInput'); if (terminalInput) { // Remove all existing event listeners by cloning const newInput = terminalInput.cloneNode(true); terminalInput.parentNode.replaceChild(newInput, terminalInput); // Apply mobile-friendly styles newInput.style.cssText = ` display: inline-block !important; position: static !important; left: auto !important; top: auto !important; opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; z-index: 9999 !important; background: #000 !important; color: #00ff00 !important; border: 1px solid #00aa00 !important; padding: 8px !important; font-size: 16px !important; font-family: inherit !important; width: auto !important; min-width: 100px !important; outline: none !important; -webkit-appearance: none !important; -webkit-user-select: text !important; user-select: text !important; `; // Re-add only essential event listeners newInput.addEventListener('keypress', function(e) { if (e.key === 'Enter') { const input = this.value.trim(); console.log('📱 Mobile input entered:', input); // Process input directly if (input === '0') { // Handle back/exit const urlParams = new URLSearchParams(window.location.search); const currentMenu = urlParams.get('menu'); if (currentMenu === 'main') { console.log('📱 Already at main menu'); this.value = ''; return; } else { window.location.href = '?menu=main'; return; } } // Check if it's a valid number if (input && !isNaN(input)) { // Find corresponding menu item const menuItems = window.menuItems || []; const selectedItem = menuItems.find(item => item.item_number == input); if (selectedItem) { if (selectedItem.action_type === 'submenu') { window.location.href = '?menu=' + encodeURIComponent(selectedItem.action_value); } else if (selectedItem.action_type === 'action') { window.location.href = '?menu=' + encodeURIComponent(currentMenu) + '&action=' + encodeURIComponent(selectedItem.action_value); } } else { console.log('📱 Invalid menu selection'); this.value = ''; } } else { console.log('📱 Invalid input'); this.value = ''; } } }); // Force focus setTimeout(() => { newInput.focus(); console.log('📱 Input focused'); }, 100); // Keep focus when touched newInput.addEventListener('blur', function() { setTimeout(() => { if (document.activeElement !== this) { this.focus(); } }, 100); }); console.log('✅ Mobile input fix applied'); } }, 500); // 3. Disable demo exit system completely on mobile if (window.demoExit) { window.demoExit = null; } // 4. Remove problematic event listeners document.removeEventListener('touchstart', arguments.callee); document.removeEventListener('touchend', arguments.callee); document.removeEventListener('touchmove', arguments.callee); console.log('✅ Mobile fixes applied'); } }); // Alternative: Create a completely new input system for mobile function createMobileInput() { const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); if (!isMobile) return; console.log('📱 Creating mobile-specific input...'); // Find the cursor element const cursor = document.querySelector('.inline-cursor'); if (cursor) { // Create mobile input const mobileInput = document.createElement('input'); mobileInput.type = 'text'; mobileInput.id = 'mobileTerminalInput'; mobileInput.style.cssText = ` background: transparent; border: none; color: #00ff00; font-family: inherit; font-size: inherit; outline: none; padding: 0; margin: 0; width: 200px; `; // Replace cursor with input cursor.parentNode.replaceChild(mobileInput, cursor); // Add enter handler mobileInput.addEventListener('keypress', function(e) { if (e.key === 'Enter') { console.log('📱 Mobile input value:', this.value); // Handle input here } }); mobileInput.focus(); console.log('✅ Mobile input created'); } } // Try both methods setTimeout(createMobileInput, 1000);