Beispiel #1
0
if (isset($_GET['sort']) && preg_match("/^[a-zA-Z]{3,4}+\$/", $_GET['sort'])) {
    if (strcasecmp($_GET['sort'], "desc") === 0 || strcasecmp($_GET['sort'], "asc") === 0) {
        $sort = strtoupper($dbi->escape_string($_GET['sort']));
    }
}
// Server Key clause
$server_key_clause = 'serverKey IN (' . $helpers->keyToServerKeys($access_keys, $_GET['key']) . ') OR LENGTH(serverKey) < 1';
$fetchresult = $dbi->query("SELECT \n\t\t\t\t\t\t\tcallID, serverIP, serverPort, CONCAT(serverIP, ':', serverPort) as fullIP, serverName, targetName, targetID, targetReason, clientName, clientID, reportedAt, callHandled\n\t\t\t\t\t\tFROM \n\t\t\t\t\t\t\t`{$table}`\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t({$from_query}) AND {$server_key_clause}\n\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\treportedAt {$sort}\n\t\t\t\t\t\tLIMIT 0, {$limit}");
// Retrieval failed
if ($fetchresult === FALSE) {
    $dbi->close();
    $helpers->printXmlError("DB_RETRIEVE_FAILURE", "CallAdmin_Notice");
}
// Save this tracker if key is set, key was given, we have an valid remote address and the client sends an store (save him as available)
if (isset($_SERVER['REMOTE_ADDR']) && isset($_GET['store'])) {
    $trackerIP = $dbi->escape_string($helpers->AnonymizeIP($_SERVER['REMOTE_ADDR']));
    $trackerID = "";
    // Steamid was submitted, this must have come from the client
    if (isset($_GET['steamid']) && $helpers->IsValidSteamID($_GET['steamid'])) {
        $trackerID = $dbi->escape_string($_GET['steamid']);
    }
    // Access query
    $access_query = '(SELECT SUM(`accessBit`) FROM `' . $table . '_Access` WHERE serverKey IN (' . $helpers->keyToServerKeys($access_keys, $_GET['key']) . '))';
    $insertresult = $dbi->query("INSERT IGNORE INTO `" . $table . "_Trackers`\n\t\t\t\t\t\t(trackerIP, trackerID, lastView, accessID)\n\t\t\t\t\tVALUES\n\t\t\t\t\t\t('{$trackerIP}', '{$trackerID}', UNIX_TIMESTAMP(), {$access_query})\n\t\t\t\t\tON DUPLICATE KEY\n\t\t\t\t\t\tUPDATE lastView = UNIX_TIMESTAMP(), trackerID = '{$trackerID}', accessID = {$access_query}");
    // Insert failed
    if ($insertresult === FALSE) {
        $dbi->close();
        $helpers->printXmlError("DB_UPDATE_FAILURE", "CallAdmin_Notice");
    }
}
$dbi->close();