$query = $GLOBALS["db"]->prepare("UPDATE `User_Details` SET `TimeStamp` = ? WHERE `ID` = ?"); $query->execute(array($timeStamp, $GLOBALS["ID"])); } function ifCheat($TSnew) { $query = $GLOBALS["db"]->prepare("SELECT `TimeStamp` FROM `User_Details` WHERE `ID` = ?"); $query->execute(array($GLOBALS["ID"])); $TSold = $query->fetch(PDO::FETCH_ASSOC)['TimeStamp']; if ($TSnew - $TSold < $GLOBALS['TSdiff']) { $query = $GLOBALS['db']->prepare("INSERT INTO `Cheat_Users` SET `ID` = ?,`LevelOld` = ? ,`IP` = ?, `TSnew` = ?, `TSold` = ?"); $query->execute(array($GLOBALS['ID'], $GLOBALS['Level'], $_SERVER['REMOTE_ADDR'], $TSnew, $TSold)); } } //TODO: crypt the DB also $ans = crypt($ans, $salt); if (authUser()) { $query = $db->prepare("SELECT `Level` FROM `User_Details` WHERE `ID` = ?"); $query->execute(array($ID)); $Level = $query->fetch(PDO::FETCH_ASSOC)['Level']; if (authAns()) { $timeStamp = new DateTime(); ifCheat($timeStamp->getTimeStamp()); setTimeStamp($timeStamp->getTimeStamp()); setRank($timeStamp->getTimeStamp()); echo json_encode(array("Message" => "Hooray!!", "Success" => True)); } else { echo json_encode(array("Error" => 2, "Message" => "Wrong Answer.", "Success" => False)); } } else { echo json_encode(array("Error" => 1, "Message" => "Is it really u?", "Success" => False)); }
processCommands(); // update database according to edit commands // Process processRules first, because the ExecEngine may execute code while processing this stuff. echo '<div id="ProcessRuleResults">'; checkRoleRules($selectedRoleNr); echo '</div>'; // Run all stored procedures in the database // Doing so AFTER running the ExecEngine allows any problems with stored procedures to be 'fixed' // 2do this: create a rule with the same ruleexpression and handle the violation with th ExecEngine runAllProcedures(); runAllProcedures(); echo '<div id="InvariantRuleResults">'; $invariantRulesHold = checkInvariantRules(); echo '</div>'; if ($invariantRulesHold) { setTimeStamp(); emitLog("COMMIT"); dbCommitTransaction(); } else { emitLog("ROLLBACK"); dbRollbackTransaction(); } echo '</div>'; } } } } } SetSMF('pause', false); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function processCommands()