HavePermission($_POST['Permission'])) { return; } $pack_data = $_POST; // echo "Session数据" . print_r($_SESSION, true), "
"; // echo "Post数据" . print_r($_POST, true), "
"; $sendServers = array(); $serversArray = $user->GetServers(); $multiserversName = ""; // 多服查询的 if (array_key_exists("multiservers", $_POST) && $_POST["multiservers"] != "") { $onlyServerID = 0; // 默认0 $multiserversName = $_POST["multiservers"]; foreach ($serversArray as $serverName => $serverInfo) { $postServerName = urlencode($serverName); if (!array_key_exists($postServerName, $_POST)) { continue; } if (!$_POST[$postServerName] == 'on') { continue; } unset($pack_data[$postServerName]); if ($serverInfo['MainServer'] && !$onlyServerID && $serverInfo['MainServer'] != $serverInfo['ServerID']) { # 有主服的代表是合服的,只发主服;因为子服是同一台服务器,没必要重复发送 continue; } $sendServers[] = array($serverName, GetQueryEventUrl($serverInfo['Page'], array())); } } else if ($_SESSION['server_id']) { $sendServers[] = array($_SESSION['server_id'], GetQueryEventUrl($_SESSION['tool_page']), array()); } if (!$sendServers) { echo "Error. " . \Lang\gettext("请先选择服务器"); return; } // 去除参数 unset($pack_data['submit']); unset($pack_data["pack_type"]); unset($pack_data["OnlyServerID"]); unset($pack_data["multiservers"]); unset($pack_data["server_select_all"]); $UserAccount = $_SESSION['UserAccount']; \CommFunc\GetConfig("ServerInfo", "SpecialServerIDStart", $SpecialServerIDStart); \CommFunc\GetConfig("ServerInfo", "SpecialAccountList", $SpecialAccountList); $SpecialAccountList = explode(",", $SpecialAccountList); $SpecialServerIDStart = intval($SpecialServerIDStart); $isSpecialUser = in_array($UserAccount, $SpecialAccountList); $pack_data["spID"] = $user->GetSPID(); $pack_data["lang"] = \Lang\getLang(); for ($i = 0; $i < count($sendServers); $i++) { $serverName = $sendServers[$i][0]; if ($serversArray[$serverName]["MixServerStr"]) { $pack_data["mixServerIDInfo"] = $serversArray[$serverName]["MixServerStr"]; } else { $pack_data["mixServerIDInfo"] = $serversArray[$serverName]["ServerID"]; } $pack_data["serverID"] = $serversArray[$serverName]["ServerID"]; if ($isSpecialUser) { // 特殊账号默认只查本服ID // 270只查自己的 if (strpos($pack_data["mixServerIDInfo"], '270') != false) { $pack_data["OnlyServerID"] = "270"; } else if ($pack_data["OnlyServerID"] == "270") { unset($pack_data['OnlyServerID']); } } $sendServers[$i][2] = $pack_data; } // echo "sendServers" . print_r($sendServers, true), "
"; // echo "pack_data" . print_r($pack_data, true), "
"; \Logging\LogInfo("待发送的服务器信息: " . count($sendServers) . " " . print_r($sendServers, true)); $retList = array(); if (count($sendServers) == 1) { $retList[] = \CommFunc\DoPost($sendServers[0][1], $sendServers[0][2]); } else { $retList = \CommFunc\DoPostMulti($sendServers); } $retCount = count($retList); \Logging\LogInfo("返回查询结果: " . $retCount . " " . print_r($retList, true)); // 多服查询总标题 if ($multiserversName) { echo "

" . $multiserversName . "

"; } for ($i = 0; $i < $retCount; $i++) { // 多服查询的情况,输出服务器名及合服明细 if ($multiserversName && $i < count($sendServers)) { echo ($i + 1) . ". "; $serverName = $sendServers[$i][0]; if ($serversArray[$serverName]["MixServerStr"]) { echo $serverName . "--->" . \Lang\gettext("已合服") . "[" . $serversArray[$serverName]["MixServerStr"] . "]"; } else { echo $serverName . "--->" . \Lang\gettext("未合服") . ""; } echo "
"; } echo $retList[$i]; echo "
"; } } /**获取目标服务器流向查询url地址 */ function GetQueryEventUrl($tool_page) { // 在原GM工具地址下同层级 return substr($tool_page, 0, -strlen("tool.php")) . "eventdata/tool.php"; } Process(); ?>