prepare( "SELECT player_name, frozen FROM users WHERE freeze_token = :t"); $stmt->bindValue(':t', $token, SQLITE3_TEXT); $row = $stmt->execute()->fetchArray(SQLITE3_ASSOC); if (!$row) { die('链接无效或已使用'); } $player = $row['player_name']; if ($row['frozen'] == 1) { // 已冻结,直接展示已冻结页 $success = true; } else { // 执行冻结 $db->exec("UPDATE users SET frozen = 1, freeze_token = '' WHERE player_name = " . SQLite3::escapeString($player)); // 通知 Java 插件封禁该玩家(Bukkit 原生 ban) $now = time(); $stmt2 = $db->prepare( "INSERT INTO web_admin_changes (change_type, target_id, target_name, change_data, created_at) VALUES ('freeze', 0, :name, '{}', :now)"); $stmt2->bindValue(':name', $player, SQLITE3_TEXT); $stmt2->bindValue(':now', $now, SQLITE3_INTEGER); $stmt2->execute(); $success = true; } // 取一个有效改密 token 构造「去改密」链接 $stmt3 = $db->prepare( "SELECT token FROM password_reset_tokens WHERE player_name = :name AND expire_at > :now ORDER BY expire_at DESC LIMIT 1"); $stmt3->bindValue(':name', $player, SQLITE3_TEXT); $stmt3->bindValue(':now', time(), SQLITE3_INTEGER); $r3 = $stmt3->execute()->fetchArray(SQLITE3_ASSOC); if ($r3) { $resetLink = getBaseUrl() . '/reset_password.php?token=' . $r3['token']; } ?>
为防范账号被盗用,玩家 的账号已被临时冻结。
冻结期间将无法进入游戏。如需解冻,请修改密码,系统将自动解除冻结。
前往修改密码并解冻未找到有效的改密链接,请返回异地登录提醒邮件点击「修改密码」。