require_once __DIR__ . '/includes/admin_security.php'; panelSession(); require_once __DIR__ . '/includes/functions.php'; header('Cache-Control: no-store'); $log_check = $db->select('users', '*', 'id = :id', '', [':id' => 1]); $loggedinuser = $log_check[0]['username'] ?? null; if ($loggedinuser && !empty($_SESSION['loggedin']) && isset($_SESSION['name']) && hash_equals((string)$loggedinuser, (string)$_SESSION['name'])) { panelRedirect('dns.php'); } if (!$loggedinuser) { // Sem credenciais padrão: provisione a primeira conta via variáveis de ambiente. $initialUser = getenv('PANEL_BOOTSTRAP_USERNAME'); $initialPass = getenv('PANEL_BOOTSTRAP_PASSWORD'); if ($initialUser && $initialPass && strlen($initialPass) >= 12) { $db->insert('users', ['id'=>1,'username'=>(string)$initialUser, 'password'=>password_hash((string)$initialPass, PASSWORD_DEFAULT)]); $loggedinuser = (string)$initialUser; } else { http_response_code(503); exit('Painel sem administrador inicial. Defina PANEL_BOOTSTRAP_USERNAME e PANEL_BOOTSTRAP_PASSWORD (mínimo 12 caracteres) no PHP-FPM.'); } } $loginError = false; if (($_SERVER['REQUEST_METHOD'] ?? '') === 'POST' && isset($_POST['login'])) { $now = time(); $failures = (int)($_SESSION['login_failures'] ?? 0); $blockedUntil = (int)($_SESSION['blocked_until'] ?? 0); if ($blockedUntil > $now) { http_response_code(429); $loginError = true; } else { $username = is_string($_POST['username'] ?? null) ? $_POST['username'] : ''; $password = is_string($_POST['password'] ?? null) ? $_POST['password'] : ''; $record = $db->select('users', '*', 'id = :id', '', [':id'=>1]); $user = $record[0] ?? []; $stored = (string)($user['password'] ?? ''); $hashed = password_get_info($stored)['algo'] !== null; $ok = is_string($user['username'] ?? null) && hash_equals($user['username'], $username) && ($hashed ? password_verify($password, $stored) : hash_equals($stored, $password)); if ($ok) { if (!$hashed || password_needs_rehash($stored, PASSWORD_DEFAULT)) { $db->update('users', ['password'=>password_hash($password, PASSWORD_DEFAULT)], 'id = :id', [':id'=>1]); } session_regenerate_id(true); $_SESSION['loggedin'] = true; $_SESSION['name'] = $user['username']; $_SESSION['panel_last_activity'] = $now; $_SESSION['login_failures'] = 0; unset($_SESSION['blocked_until']); panelRedirect($username === 'admin' ? 'user.php' : 'dns.php'); } $_SESSION['login_failures'] = ++$failures; if ($failures >= 5) { $_SESSION['blocked_until'] = $now + 600; } http_response_code(401); $loginError = true; } } // Variáveis para descrição e links $descriptionText1 = << Mod do Painel e Aplicativo idealizado por
Léo Customizações
e equipe
Start 3D Midia HTML; $descriptionLink = "https://contato.s3dmidia.com.br"; // Adicione o link desejado aqui $descriptionLinkText = << Clique aqui para suporte HTML; $descriptionText2 = << Este é o segundo campo de descrição. Você pode copiar este texto. HTML; $file_name = './codigo_json.json'; $json_data = file_get_contents($file_name); if ($json_data === false) { die("Erro ao ler o arquivo JSON."); } // 2. Converter a String JSON para um Array PHP $data = json_decode($json_data, true); // Passar true para obter um array associativo $codigo = $data['codigo']; // HTML da página echo << Star 3D Midia IBO P2P


Logo

Baixar Aplicativo




HTML; ?>