exec("INSERT INTO `$dbname`.`csrf_token` (`token`,`timestamp`,`sessionid`) VALUES ('$csrf_token','".time()."','".session_id()."')") === false) {
$err_msg = print_r($mysqlcon->errorInfo(), true);
$err_lvl = 3;
}
if (($db_csrf = $mysqlcon->query("SELECT * FROM `$dbname`.`csrf_token` WHERE `sessionid`='".session_id()."'")->fetchALL(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) {
$err_msg = print_r($mysqlcon->errorInfo(), true);
$err_lvl = 3;
}
if(($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups` ORDER BY `sortid`,`sgidname` ASC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) {
$err_msg = print_r($mysqlcon->errorInfo(), true);
$err_lvl = 3;
}
if(!isset($groupslist) || $groupslist == NULL) {
$err_msg = 'No servergroups found inside the Ranksystem cache!
Please connect the Ranksystem Bot to the TS server. The Ranksystem will download the servergroups when it is connected to the server.
Give it a few minutes and reload this page. The dropdown field should contain your groups after.';
$err_lvl = 1;
}
if (isset($_POST['update_old']) && isset($db_csrf[$_POST['csrf_token']])) {
if(empty($_POST['rankup_definition'])) {
$grouparr_old = null;
} else {
foreach (explode(',', $_POST['rankup_definition']) as $entry) {
list($time, $groupid, $keepflag) = explode('=>', $entry);
if($keepflag == NULL) $keepflag = 0;
$grouparr_old[$time] = array("time"=>$time,"group"=>$groupid,"keep"=>$keepflag);
$cfg['rankup_definition'] = $grouparr_old;
}
}
$errcnf = 0;
if(isset($groupslist) && $groupslist != NULL) {
if(isset($cfg['rankup_definition']) && $cfg['rankup_definition'] != NULL) {
foreach($cfg['rankup_definition'] as $time => $value) {
if(!isset($groupslist[$value['group']]) && $value['group'] != NULL) {
if(!isset($err_msg)) $err_msg = '';
$err_msg .= sprintf($lang['upgrp0001'], $value['group'], $lang['wigrptime']).'
';
$err_lvl = 3;
$errcnf++;
}
}
}
}
if($_POST['rankup_definition'] == "") {
$err_msg = "Saving of empty defintion prevented.
Your changes were not be saved!
You need at least one entry to be able to save the configuration!";
$err_lvl = 3;
} else {
if($errcnf == 0) {
if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_definition','{$_POST['rankup_definition']}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) {
$err_msg = print_r($mysqlcon->errorInfo(), true);
$err_lvl = 3;
} else {
$err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '');
$err_lvl = NULL;
}
} else {
$err_msg .= "
".$lang['errgrpid'];
}
}
} elseif (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) {
$rankup_definition = "";
if(isset($_POST['rankuptime']) && isset($_POST['rankupgroup'])) {
$rankupgroups = [];
foreach($_POST['rankuptime'] as $key => $entry) {
$servergroupId = isset($_POST["rankupgroup"][$key]) ? $_POST["rankupgroup"][$key] : 0;
if(isset($_POST["rankupkeep"]) && in_array($key,$_POST["rankupkeep"])) {
$keepflag = 1;
} else {
$keepflag = 0;
}
if(empty($entry)) {
$entry = 0;
}
$rankupgroups[] = "$entry=>$servergroupId=>$keepflag";
}
$rankup_definition = implode(",", $rankupgroups);
$grouparr = [];
foreach(explode(',', $rankup_definition) as $entry) {
list($time, $groupid, $keepflag) = explode('=>', $entry);
$grouparr[$groupid] = $time;
}
$err_msg = '';
$errcnf = 0;
if(isset($groupslist) && $groupslist != NULL) {
foreach($grouparr as $groupid => $time) {
if((!isset($groupslist[$groupid]) && $groupid != NULL) || $groupid == 0) {
$err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wigrptime']).'
';
$err_lvl = 3;
$errcnf++;
}
}
}
$cfg['rankup_definition'] = $rankup_definition;
if($errcnf == 0) {
if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_definition','{$cfg['rankup_definition']}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) {
$err_msg = print_r($mysqlcon->errorInfo(), true);
$err_lvl = 3;
} else {
$err_msg = $lang['wisvsuc']." ".sprintf($lang['wisvres'], '');
$err_lvl = NULL;
}
} else {
$err_msg .= "
".$lang['errgrpid'];
}
if(empty($rankup_definition)) {
$cfg['rankup_definition'] = NULL;
} else {
$grouptimearr = explode(',', $rankup_definition);
foreach ($grouptimearr as $entry) {
list($time, $groupid, $keepflag) = explode('=>', $entry);
$addnewvalue1[$time] = array("time"=>$time,"group"=>$groupid,"keep"=>$keepflag);
$cfg['rankup_definition'] = $addnewvalue1;
}
}
} else {
$err_msg = $lang['errukwn'];
$err_lvl = 3;
}
} elseif(isset($_POST['update']) || isset($_POST['update_old'])) {
echo '