function DBExecute($query) { $link = DBConnect(); $result = mysqli_query($link, $query) or die(mysqli_error($link)); DBClose($link); return $result; }
function DBInsert_Candidato(array $candidato) { $link = DBConnect(); $query_inserir = "INSERT INTO candidato (idcandidato, nome, cpf, rua, num, bairro, cidade, cep, fixo, cel, email, curso1, curso2, datahora) VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())"; $stmt = $link->prepare($query_inserir) or die(mysqli_error($link)); if ($stmt) { $stmt->bind_param("sssissssssss", $candidato["nome"], $candidato["cpf"], $candidato["rua"], $candidato["num"], $candidato["bairro"], $candidato["cidade"], $candidato["cep"], $candidato["fixo"], $candidato["cel"], $candidato["email"], $candidato["opc1"], $candidato["opc2"]); $resultado = $stmt->execute() ? 1 : 0; $stmt->store_result(); $stmt->close(); } DBClose($link); return $resultado; }
function DBInsert_Curso(array $curso, $foto1, $foto2, $foto3) { $link = DBConnect(); $query_curso = "INSERT INTO curso (idcurso, cod, nome, duracao, periodo, mensalidade, descricao, foto1, foto2, foto3) VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; $stmt = $link->prepare($query_curso) or die(mysqli_error($link)); if ($stmt) { $stmt->bind_param("ssissssss", $curso["cod"], $curso["nome"], $curso["duracao"], $curso["periodo"], $curso["mensalidade"], $curso["descricao"], $foto1, $foto2, $foto3); $resultado = $stmt->execute() ? 1 : 0; $stmt->store_result(); $stmt->close(); } DBClose($link); return $resultado; }
function DBEscape($dados) { $link = DBConnect(); if (!is_array($dados)) { $dados = mysqli_real_escape_string($link, $dados); } else { $arr = $dados; foreach ($arr as $key => $value) { $key = mysqli_real_escape_string($link, $key); $value = mysqli_real_escape_string($link, $value); $dados[$key] = $value; } } DBClose($link); }
function DBEscape($data) { $link = DBConnect(); if (!is_array($data)) { $data = mysqli_real_escape_string($link, $data); } else { $arr = $data; foreach ($arr as $key => $value) { $key = DBEscape($key); $value = DBEscape($value); $data[$key] = $value; } } DBClose($link); return $data; }
function DBProtect($dados) { //Protege contra SQL Inject $link = DBConnect(); if (!is_array($dados)) { $dados = mysqli_real_escape_string($link, $dados); } else { $arr = $dados; foreach ($arr as $key => $value) { $key = mysqli_real_escape_string($link, $key); $value = mysqli_real_escape_string($link, $value); $dados[$key] = $value; } } DBClose($link); return $dados; }
function importFromXML($ar, $acr, $contest = 0, $localsite = 0) { $data = implode("", explode("\n", $ar)); $parser = xml_parser_create(); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 1); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); xml_parse_into_struct($parser, $data, $values, $tags); xml_parser_free($parser); // print_r($tags); // print_r($values); $orderkeys = array('CONTESTREC', 'SITETIME', 'SITEREC', 'USERREC', 'ANSWERREC', 'LANGUAGEREC', 'PROBLEMREC', 'CLARREC', 'RUNREC', 'TASKREC'); $norderkeys = 10; $nc = 0; unset($sitetime); unset($nsitetime); $conn = DBConnect(); if ($conn == null) { return false; } // DBExec($conn,"begin work","importFromXML(begin)"); // DBExec($conn,"lock","importFromXML(lock)"); if ($contest != 0) { $r = DBExec($conn, "select * from contesttable where contestnumber={$contest}"); if (DBnLines($r) == 0) { echo "Unable to find the contest {$contest} in the database.\n"; DBExec($conn, "rollback work"); return false; } $ct = DBRow($r, 0); if ($localsite == 0) { $localsite = $ct["contestlocalsite"]; } } else { if ($localsite == 0) { $localsite = 1; } } // $mainsite = $ct["contestmainsite"]; DBClose($conn); $conn = null; for ($keyindex = 0; $keyindex < $norderkeys; $keyindex++) { foreach ($tags as $key => $val) { if ($values[$val[0]]['type'] != 'open') { continue; } if ($key == "XML") { continue; } if ($key != $orderkeys[$keyindex]) { continue; } if (isset($acr[$key])) { $ac = $acr[$key]; } else { continue; } foreach ($val as $k => $v) { if ($values[$v]['type'] != 'open') { continue; } if (count($val) > $k + 1) { $param = array(); if (isset($ac['site'])) { for ($i = $v; $i < $val[$k + 1]; $i++) { $p = strtolower($values[$i]["tag"]); if ($p == 'site') { if ($values[$i]["type"] == "complete" && isset($values[$i]["value"])) { $tmp = sanitizeText(trim(implode('', explode('\\n', $values[$i]["value"])))); if (is_array($ac['site']) && in_array($tmp, $ac['site'])) { $param['site'] = $tmp; } else { if ($ac['site'] == -1 || $ac['site'] == -2 && $tmp == $localsite || $ac['site'] == -3 && $tmp != $localsite || $ac['site'] > 0 && $ac['site'] == $tmp) { $param['site'] = $tmp; } } } } } } for ($i = $v; $i < $val[$k + 1]; $i++) { $p = strtolower($values[$i]["tag"]); if (isset($ac[$p]) && $p != 'site') { if ($values[$i]["type"] == "complete" && isset($values[$i]["value"])) { if (is_string($ac[$p])) { $param[$p] = $ac[$p]; } else { $tmp = sanitizeText(trim(implode('', explode('\\n', $values[$i]["value"])))); if (is_array($ac[$p]) && in_array($tmp, $ac[$p])) { $param[$p] = $tmp; } else { if ($ac[$p] == -1 || $ac[$p] == -2 && $tmp == $localsite || $ac[$p] == -3 && $tmp != $localsite || $ac[$p] == 0 && isset($param['site']) || $ac[$p] > 0 && $ac[$p] == $tmp) { $param[$p] = $tmp; } } } } } } // echo "\nKEY KEY KEY\n"; // print_r($key); // echo "\nVAL VAL VAL\n"; // print_r($val); // echo "\n"; // print_r($param); $param['contestnumber'] = $contest; if ($key == "CONTESTREC") { $param['number'] = $contest; if ($contest == 0) { $nc = 1; $contest = DBNewContest($param, $conn); if ($contest > 0) { echo "<br><u>Contest {$contest} created</u> (not active by default)<br>"; } else { echo "<br>Error creating contest<br>"; if ($conn != null) { DBExec($conn, "rollback work"); } return false; } } $param['number'] = $contest; $param['contestnumber'] = $contest; if ($ret = DBUpdateContest($param, $conn)) { if ($ret == 2) { echo "<br>Contest {$contest} updated<br>"; } } else { if ($conn != null) { DBExec($conn, "rollback work"); } return false; } } if (!isset($param['number']) || count($param) < 2) { continue; } if ($key == "SITEREC") { if (!DBNewSite($contest, $conn, $param)) { if ($conn != null) { DBExec($conn, "rollback work"); } return false; } if ($ret = DBUpdateSite($param, $conn)) { if ($ret == 2) { echo "Site " . $param["number"] . " updated<br>"; } } else { if ($conn != null) { DBExec($conn, "rollback work"); } return false; } if (isset($nsitetime[$param["number"]])) { if ($qtd = DBRenewSiteTime($sitetime[$param["number"]], $conn)) { if ($qtd == 2) { echo "Time for site " . $param["number"] . " updated<br>"; } } else { if ($conn != null) { DBExec($conn, "rollback work"); } return false; } } } if ($key == "SITETIME") { if (isset($param['site']) && is_numeric($param['site'])) { $s = $param['site']; if (!isset($nsitetime[$s])) { $nsitetime[$s] = 0; } $sitetime[$s][$nsitetime[$s]] = $param; $nsitetime[$s]++; } } if ($key == "USERREC") { if ($ret = DBNewUser($param, $conn)) { if ($ret == 2) { echo "User " . $param["number"] . "/" . $param['site'] . " updated<br>"; } } else { if ($conn != null) { DBExec($conn, "rollback work"); } return false; } } if ($key == "ANSWERREC") { if ($ret = DBNewAnswer($contest, $param, $conn)) { if ($ret == 2) { echo "Answer " . $param["number"] . " updated<br>"; } } else { if ($conn != null) { DBExec($conn, "rollback work"); } return false; } } if ($key == "LANGUAGEREC") { if ($ret = DBNewLanguage($contest, $param, $conn)) { if ($ret == 2) { echo "Language " . $param['number'] . " updated<br>"; } } else { if ($conn != null) { DBExec($conn, "rollback work"); } return false; } } if ($key == "PROBLEMREC") { if ($ret = DBNewProblem($contest, $param, $conn)) { if ($ret == 2) { echo "Problem " . $param['number'] . " updated<br>"; } } else { if ($conn != null) { DBExec($conn, "rollback work"); } return false; } } if ($key == "TASKREC") { if ($ret = DBNewTask($param, $conn)) { if ($ret == 2) { echo "Task " . $param['number'] . "/" . $param['site'] . " updated<br>"; } } else { if ($conn != null) { DBExec($conn, "rollback work"); } return false; } } if ($key == "CLARREC") { if ($ret = DBNewClar($param, $conn)) { if ($ret == 2) { echo "Clarification " . $param['number'] . "/" . $param['site'] . " updated<br>"; } } else { if ($conn != null) { DBExec($conn, "rollback work"); } return false; } } if ($key == "RUNREC") { if ($ret = DBNewRun($param, $conn)) { if ($ret == 2) { echo "Run " . $param['number'] . "/" . $param['site'] . " updated<br>"; } } else { if ($conn != null) { DBExec($conn, "rollback work"); } return false; } } } } } } // DBExec($conn,"commit work","importFromXML(commit)"); return true; }
<?php session_start(); if (!isset($_SESSION['login']) && !isset($_SESSION['senha'])) { session_destroy(); unset($_SESSION['login']); unset($_SESSION['senha']); header('location: ../../portal/login.php'); } ?> <?php require '../banco/db_curso.php'; $link = DBConnect(); $id = $_GET['id']; if (isset($id)) { $query = $link->query("DELETE FROM curso WHERE idcurso = {$id}"); if ($query) { echo "<script>location.href='../cursos.php';</script>"; } else { header('location: ../cursos.php'); } } $stmt->close(); DBClose($link);
LOGError("Unable to open file (" . basename($fname) . ")"); MSGError("Unable to open file (" . basename($fname) . ")"); echo "<script>window.close();</script></html>"; exit; } ob_end_flush(); // echo "</pre>\n"; DB_lo_close($lo); if ($msg != '') { // echo " <a href=\"#\" onClick=\"window.print()\"><h1>".$_GET["msg"]."</h1></a>"; echo "\n\n\n" . $msg . "\n"; echo $msg . "\n"; echo $msg . "\n"; } DBExec($c, "commit work"); DBClose($c); } else { header("Expires: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); if (($str = file_get_contents($fname)) === false) { header("Content-type: text/html"); echo "<html><head><title>View Page</title>"; MSGError("Unable to open file (" . basename($fname) . ")"); LOGError("Unable to open file (" . basename($fname) . ")"); echo "<script>window.close();</script></html>"; exit; } header("Content-type: text/plain"); echo decryptData($str, $cf["key"]);
// $PDFCompanyLogoHeight = $f['PDF_COMPANY_LOGO_HEIGHT']; // Company Logo Width PDF // $PDFCompanyLogoWidth = $f['PDF_COMPANY_LOGO_WIDTH']; // PDF Font // $PDFFont = $f['PDF_FONT']; // TEMP Directory for PDF's // The Webserver must have write access // for this directory // $PDFDirectory = $f['PDF_DIR']; // PDF Fontsize 1 // $PDFFontsize1 = $f['PDF_FONT_SIZE1']; // PDF Fontsize 2 // $PDFFontsize2 = $f['PDF_FONT_SIZE2']; // PDF Text Height e. g. Invoice / Offer // $PDFTypeHeight = $f['PDF_TYPE_HEIGHT']; // PDF Attachment Text // $PDFAttachmentText = $f['PDF_ATTACHMENT_TEXT']; } } // Close Database Connection ( optional ) // DBClose();
function GetExternalData($contest) { $c = DBConnect(); if ($c == null) { return; } $r = DBExec($c, "select * from contesttable where contestnumber={$contest}"); if (DBnLines($r) == 0) { echo "Unable to find the contest {$contest} in the database.\n"; exit; } $ct = DBRow($r, 0); $localsite = $ct["contestlocalsite"]; $mainsite = $ct["contestmainsite"]; if ($mainsite != $localsite) { $r = DBExec($c, "select * from sitetable where sitenumber=" . $ct["contestmainsite"] . " and contestnumber={$contest}"); if (DBnLines($r) == 0) { echo "Unable to find the main site in the database (site={$site}, contest={$contest}).\n"; exit; } $st = DBRow($r, 0); if (($t = DBExtConnect($c, $contest, $st["sitenumber"])) != null) { DBExec($c, "begin work"); // sincronizando contest $r = DBExec($t, "select * from contesttable where contestnumber={$contest}"); $n = DBnLines($r); $atual = DBRow($r, 0); if ($atual["updatetime"] == "") { $atual["updatetime"] = time(); } DBExec($c, "update contesttable set " . "contestduration=" . $atual["contestduration"] . "," . "conteststartdate=" . $atual["conteststartdate"] . "," . "contestmaxfilesize=" . $atual["contestmaxfilesize"] . "," . "contestactive='" . $atual["contestactive"] . "'," . "contestname='" . escape_string($atual["contestname"]) . "'," . "contestlastmileanswer=" . $atual["contestlastmileanswer"] . "," . "contestlastmilescore=" . $atual["contestlastmilescore"] . "," . "contestpenalty=" . $atual["contestpenalty"] . "," . "updatetime=" . $atual["updatetime"] . " where contestnumber={$contest} and updatetime<" . $atual["updatetime"]); // sincronizando answers $r = DBExec($t, "select * from answertable where contestnumber={$contest}"); $rr = DBExec($c, "select * from answertable where contestnumber={$contest} for update"); $n = DBnLines($r); $nn = DBnLines($rr); echo "answers: external(site={$mainsite}, reading={$mainsite})={$n}, local={$nn}\n"; for ($k = 0; $k < $nn; $k++) { $needed[$k] = false; } for ($j = 0; $j < $n; $j++) { $la = DBRow($r, $j); for ($k = 0; $k < $nn; $k++) { $aqui = DBRow($rr, $k); if ($la["answernumber"] == $aqui["answernumber"] && $la["contestnumber"] == $aqui["contestnumber"]) { $needed[$k] = true; if ($la["updatetime"] > $aqui["updatetime"]) { $situacao[$j] = "atualizar"; } else { $situacao[$j] = "ok"; } break; } } if ($k >= $nn) { $situacao[$j] = "inserir"; } } $del = 0; $upd = 0; $ins = 0; for ($k = 0; $k < $nn; $k++) { $atual = DBRow($rr, $k); if (!$needed[$k]) { DBExec($c, "delete from answertable where contestnumber={$contest} and answernumber=" . $atual["answernumber"]); $del++; } } for ($j = 0; $j < $n; $j++) { $atual = DBRow($r, $j); if ($atual["updatetime"] == "") { $atual["updatetime"] = time(); } if ($situacao[$j] == "atualizar") { $upd++; DBExec($c, "update answertable set " . "runanswer='" . $atual["runanswer"] . "'," . "yes='" . $atual["yes"] . "'," . "fake='" . $atual["fake"] . "'," . "updatetime=" . $atual["updatetime"] . " where contestnumber={$contest} and answernumber=" . $atual["answernumber"] . " and updatetime<" . $atual["updatetime"]); } else { if ($situacao[$j] == "inserir") { $ins++; DBExec($c, "insert into answertable (contestnumber, answernumber, runanswer, yes, fake, updatetime) values (" . $contest . "," . $atual["answernumber"] . ",'" . $atual["runanswer"] . "','" . $atual["yes"] . "'," . "'" . $atual["fake"] . "'," . $atual["updatetime"] . ")"); } } } echo " deletions={$del}, updates={$upd}, insertions={$ins}\n\n"; // sincronizando languages $r = DBExec($t, "select * from langtable where contestnumber={$contest}"); $rr = DBExec($c, "select * from langtable where contestnumber={$contest} for update"); $n = DBnLines($r); $nn = DBnLines($rr); echo "languages: external(site={$mainsite}, reading={$mainsite})={$n}, local={$nn}\n"; for ($k = 0; $k < $nn; $k++) { $needed[$k] = false; } for ($j = 0; $j < $n; $j++) { $la = DBRow($r, $j); for ($k = 0; $k < $nn; $k++) { $aqui = DBRow($rr, $k); if ($la["langnumber"] == $aqui["langnumber"] && $la["contestnumber"] == $aqui["contestnumber"]) { $needed[$k] = true; if ($la["updatetime"] > $aqui["updatetime"]) { $situacao[$j] = "atualizar"; } else { $situacao[$j] = "ok"; } break; } } if ($k >= $nn) { $situacao[$j] = "inserir"; } } $del = 0; $upd = 0; $ins = 0; for ($k = 0; $k < $nn; $k++) { $atual = DBRow($rr, $k); if (!$needed[$k]) { DBExec($c, "delete from langtable where contestnumber={$contest} and langnumber=" . $atual["langnumber"]); $del++; } } for ($j = 0; $j < $n; $j++) { $atual = DBRow($r, $j); if ($atual["updatetime"] == "") { $atual["updatetime"] = time(); } if ($situacao[$j] == "atualizar") { $upd++; DBExec($c, "update langtable set " . "langname='" . escape_string($atual["langname"]) . "'," . "updatetime=" . $atual["updatetime"] . " where contestnumber={$contest} and langnumber=" . $atual["langnumber"] . " and updatetime<" . $atual["updatetime"]); } else { if ($situacao[$j] == "inserir") { $ins++; DBExec($c, "insert into langtable (contestnumber, langnumber, langname, updatetime) values ({$contest}," . $atual["langnumber"] . ",'" . escape_string($atual["langname"]) . "'," . $atual["updatetime"] . ")"); } } } echo " deletions={$del}, updates={$upd}, insertions={$ins}\n\n"; // sincronizando problems $r = DBExec($t, "select * from problemtable where contestnumber={$contest}"); $rr = DBExec($c, "select * from problemtable where contestnumber={$contest} for update"); $n = DBnLines($r); $nn = DBnLines($rr); echo "problems: external(site={$mainsite}, reading={$mainsite})={$n}, local={$nn}\n"; for ($k = 0; $k < $nn; $k++) { $needed[$k] = false; } for ($j = 0; $j < $n; $j++) { $la = DBRow($r, $j); for ($k = 0; $k < $nn; $k++) { $aqui = DBRow($rr, $k); if ($la["problemnumber"] == $aqui["problemnumber"] && $la["contestnumber"] == $aqui["contestnumber"]) { $needed[$k] = true; if ($la["updatetime"] > $aqui["updatetime"]) { $situacao[$j] = "atualizar"; } else { $situacao[$j] = "ok"; } break; } } if ($k >= $nn) { $situacao[$j] = "inserir"; } } $del = 0; $upd = 0; $ins = 0; for ($k = 0; $k < $nn; $k++) { $atual = DBRow($rr, $k); if (!$needed[$k]) { DBExec($c, "delete from problemtable where contestnumber={$contest} and problemnumber=" . $atual["problemnumber"]); $del++; } } for ($j = 0; $j < $n; $j++) { $atual = DBRow($r, $j); if ($atual["updatetime"] == "") { $atual["updatetime"] = time(); } if ($situacao[$j] == "inserir") { $ins++; $upd--; DBExec($c, "insert into problemtable (contestnumber, problemnumber, problemname, updatetime) values ({$contest}," . $atual["problemnumber"] . ",'" . escape_string($atual["problemname"]) . "', 0)"); } if ($situacao[$j] == "atualizar" || $situacao[$j] == "inserir") { $upd++; $p = DBRow($r2, 0); if ($p["probleminputfile"] > 0) { DB_lo_unlink($c, $p["probleminputfile"]); } if ($p["problemsolfile"] > 0) { DB_lo_unlink($c, $p["problemsolfile"]); } DBExec($t, "begin work"); if ($atual["probleminputfile"] == "") { $inputfile = "null"; } else { $in = DB_lo_open($t, $atual["probleminputfile"], "r"); if (!$in) { $inputfile = "null"; } else { $inputfile = DB_lo_create($c); $out = DB_lo_open($c, $inputfile, "w"); while (($buf = DB_lo_read($in, 100000)) != false) { DB_lo_write($out, $buf); } DB_lo_close($out); DB_lo_close($in); } } if ($atual["problemsolfile"] == "") { $solfile = "null"; } else { $in = DB_lo_open($t, $atual["problemsolfile"], "r"); if (!$in) { $solfile = "null"; } else { $solfile = DB_lo_create($c); $out = DB_lo_open($c, $solfile, "w"); while (($buf = DB_lo_read($in, 100000)) != false) { DB_lo_write($out, $buf); } DB_lo_close($out); DB_lo_close($in); } } DBExec($t, "commit work"); DBExec($c, "update problemtable set " . "problemname='" . escape_string($atual["problemname"]) . "'," . "problemfullname='" . escape_string($atual["problemfullname"]) . "'," . "problembasefilename='" . escape_string($atual["problembasefilename"]) . "'," . "probleminputfilename='" . escape_string($atual["probleminputfilename"]) . "'," . "problemsolfilename='" . escape_string($atual["problemsolfilename"]) . "'," . "fake='" . $atual["fake"] . "'," . "probleminputfile=" . $inputfile . "," . "problemsolfile=" . $solfile . "," . "updatetime=" . $atual["updatetime"] . " where contestnumber={$contest} and problemnumber=" . $atual["problemnumber"] . " and updatetime<" . $atual["updatetime"]); } } echo " deletions={$del}, updates={$upd}, insertions={$ins}\n\n"; DBExec($c, "commit work"); } } $r = DBExec($c, "select * from sitetable where contestnumber={$contest}"); $n = DBnlines($r); if ($n == 0) { echo "Unable to find sites in the database.\n"; exit; } $st = array(); for ($i = 0; $i < $n; $i++) { $st[$i] = DBRow($r, $i); } for ($i = 0; $i < count($st); $i++) { $site = $st[$i]["sitenumber"]; if ($site == $ct["contestlocalsite"]) { continue; } if (($t = DBExtConnect($c, $contest, $site)) == null) { continue; } DBExec($c, "begin work"); // sincronizando site $r = DBExec($t, "select * from sitetable where contestnumber={$contest} and sitenumber={$site}"); $rr = DBExec($c, "select * from sitetable where contestnumber={$contest} and sitenumber={$site} for update"); $n = DBnLines($r); $nn = DBnLines($rr); $atual = DBRow($r, 0); $p = DBRow($rr, 0); // if ($p["updatetime"]<$atual["updatetime"]) { if ($atual["sitestartdate"] == "") { $atual["sitestartdate"] = "null"; } if ($atual["sitelastmilescore"] == "") { $atual["sitelastmilescore"] = "null"; } if ($atual["sitelastmileanswer"] == "") { $atual["sitelastmileanswer"] = "null"; } if ($atual["siteenddate"] == "") { $atual["siteenddate"] = "null"; } if ($atual["siteendeddate"] == "") { $atual["siteendeddate"] = "null"; } if ($atual["siteautoend"] != "t") { $atual["siteautoend"] = "f"; } if ($atual["updatetime"] == "") { $atual["updatetime"] = time(); } DBExec($c, "update sitetable set " . "sitename='" . escape_string($atual["sitename"]) . "'," . "siteactive='" . escape_string($atual["siteactive"]) . "'," . "sitepermitlogins='" . escape_string($atual["sitepermitlogins"]) . "'," . "sitestartdate=" . $atual["sitestartdate"] . "," . "sitelastmilescore=" . $atual["sitelastmilescore"] . "," . "sitelastmileanswer=" . $atual["sitelastmileanswer"] . "," . "siteenddate=" . $atual["siteenddate"] . "," . "siteendeddate=" . $atual["siteendeddate"] . "," . "siteautoend='" . escape_string($atual["siteautoend"]) . "'," . "sitejudging='" . escape_string($atual["sitejudging"]) . "'," . "siteglobalscore='" . escape_string($atual["siteglobalscore"]) . "'," . "sitescorelevel=" . $atual["sitescorelevel"] . "," . "sitenextuser="******"sitenextuser"] . "," . "sitenextclar=" . $atual["sitenextclar"] . "," . "sitenextrun=" . $atual["sitenextrun"] . "," . "updatetime=" . $atual["updatetime"] . " where contestnumber={$contest} and sitenumber=" . $atual["sitenumber"]); // ." and updatetime<".$atual["updatetime"]); // } // sincronizando users $r = DBExec($t, "select * from usertable where contestnumber={$contest} and usersitenumber={$site}"); $rr = DBExec($c, "select * from usertable where contestnumber={$contest} and usersitenumber={$site}"); $n = DBnLines($r); $nn = DBnLines($rr); echo "users: external(site={$site}, reading={$site})={$n}, local={$nn}\n"; for ($k = 0; $k < $nn; $k++) { $needed[$k] = false; } for ($j = 0; $j < $n; $j++) { $la = DBRow($r, $j); for ($k = 0; $k < $nn; $k++) { $aqui = DBRow($rr, $k); if ($la["usernumber"] == $aqui["usernumber"] && $la["contestnumber"] == $aqui["contestnumber"] && $la["usersitenumber"] == $aqui["usersitenumber"]) { $needed[$k] = true; if ($la["updatetime"] > $aqui["updatetime"]) { $situacao[$j] = "atualizar"; } else { $situacao[$j] = "ok"; } break; } } if ($k >= $nn) { $situacao[$j] = "inserir"; } } $del = 0; for ($k = 0; $k < $nn; $k++) { $atual = DBRow($rr, $k); if (!$needed[$k]) { DBExec($c, "delete from usertable where contestnumber={$contest} and usersitenumber={$site} and usernumber=" . $atual["usernumber"]); $del++; } } $upd = 0; $ins = 0; for ($j = 0; $j < $n; $j++) { $atual = DBRow($r, $j); if ($atual["userlastlogin"] == "") { $atual["userlastlogin"] = "******"; } if ($atual["userlastlogout"] == "") { $atual["userlastlogout"] = "null"; } if ($atual["updatetime"] == "") { $atual["updatetime"] = time(); } if ($situacao[$j] == "atualizar") { DBExec($c, "update usertable set " . "username='******'," . "userfullname='" . escape_string($atual["userfullname"]) . "'," . "userdesc='" . escape_string($atual["userdesc"]) . "'," . "usertype='" . escape_string($atual["usertype"]) . "'," . "userenabled='" . $atual["userenabled"] . "'," . "usermultilogin='******'," . "userpassword='******'," . "userip='" . $atual["userip"] . "'," . "userlastlogin="******"userlastlogin"] . "," . "userlastlogout=" . $atual["userlastlogout"] . "," . "usersession='" . $atual["usersession"] . "'," . "userpermitip='" . $atual["userpermitip"] . "'," . "updatetime=" . $atual["updatetime"] . " where contestnumber={$contest} and usersitenumber=" . $atual["usersitenumber"] . " and usernumber=" . $atual["usernumber"] . " and updatetime<" . $atual["updatetime"]); $upd++; } else { if ($situacao[$j] == "inserir") { DBExec($c, "insert into usertable (username, userfullname, userdesc, usertype, userenabled, usermultilogin, " . "userpassword, userip, userlastlogin, userlastlogout, usersession, userpermitip, updatetime, " . "contestnumber, usersitenumber, usernumber) values (" . "'" . escape_string($atual["username"]) . "'," . "'" . escape_string($atual["userfullname"]) . "'," . "'" . escape_string($atual["userdesc"]) . "'," . "'" . $atual["usertype"] . "'," . "'" . $atual["userenabled"] . "'," . "'" . $atual["usermultilogin"] . "'," . "'" . $atual["userpassword"] . "'," . "'" . $atual["userip"] . "'," . $atual["userlastlogin"] . "," . $atual["userlastlogout"] . "," . "'" . $atual["usersession"] . "'," . "'" . $atual["userpermitip"] . "'," . $atual["updatetime"] . ",{$contest}," . $atual["usersitenumber"] . "," . $atual["usernumber"] . ")"); $ins++; } } } echo " deletions={$del}, updates={$upd}, insertions={$ins}\n\n"; // sincronizando clars $r = DBExec($t, "select * from clartable where contestnumber={$contest} and clarsitenumber={$site}"); $rr = DBExec($c, "select * from clartable where contestnumber={$contest} and clarsitenumber={$site}"); $n = DBnLines($r); $nn = DBnLines($rr); echo "clars: external(site={$site}, reading={$site})={$n}, local={$nn}\n"; for ($k = 0; $k < $nn; $k++) { $needed[$k] = false; } for ($j = 0; $j < $n; $j++) { $la = DBRow($r, $j); for ($k = 0; $k < $nn; $k++) { $aqui = DBRow($rr, $k); if ($la["clarnumber"] == $aqui["clarnumber"] && $la["contestnumber"] == $aqui["contestnumber"] && $la["clarsitenumber"] == $aqui["clarsitenumber"]) { $needed[$k] = true; if ($la["updatetime"] > $aqui["updatetime"]) { $situacao[$j] = "atualizar"; } else { $situacao[$j] = "ok"; } break; } } if ($k >= $nn) { $situacao[$j] = "inserir"; } } $del = 0; for ($k = 0; $k < $nn; $k++) { $atual = DBRow($rr, $k); if (!$needed[$k]) { DBExec($c, "delete from clartable where contestnumber={$contest} and clarsitenumber={$site} and clarnumber=" . $atual["clarnumber"]); $del++; } } $upd = 0; $ins = 0; for ($j = 0; $j < $n; $j++) { $atual = DBRow($r, $j); if ($atual["claranswer"] == "") { $atual["claranswer"] = "null"; } else { $atual["claranswer"] = "'" . escape_string($atual["claranswer"]) . "'"; } if ($atual["clarjudge"] == "") { $atual["clarjudge"] = "null"; } if ($atual["clarjudgesite"] == "") { $atual["clarjudgesite"] = "null"; } if ($atual["updatetime"] == "") { $atual["updatetime"] = time(); } if ($situacao[$j] == "atualizar") { DBExec($c, "update clartable set " . "usernumber=" . $atual["usernumber"] . "," . "clardate=" . $atual["clardate"] . "," . "clardatediff=" . $atual["clardatediff"] . "," . "clardatediffans=" . $atual["clardatediffans"] . "," . "clarproblem=" . $atual["clarproblem"] . "," . "clardata='" . escape_string($atual["clardata"]) . "'," . "claranswer=" . $atual["claranswer"] . "," . "clarstatus='" . escape_string($atual["clarstatus"]) . "'," . "clarjudge=" . $atual["clarjudge"] . "," . "clarjudgesite=" . $atual["clarjudgesite"] . "," . "updatetime=" . $atual["updatetime"] . " where contestnumber={$contest} and clarsitenumber=" . $atual["clarsitenumber"] . " and clarnumber=" . $atual["clarnumber"] . " and updatetime<" . $atual["updatetime"]); $upd++; } else { if ($situacao[$j] == "inserir") { DBExec($c, "insert into clartable (contestnumber, clarsitenumber, clarnumber, usernumber, clardate," . "clardatediff, clardatediffans, clarproblem, clardata, claranswer, clarstatus, clarjudge, clarjudgesite, updatetime) " . "values (" . $contest . "," . $atual["clarsitenumber"] . "," . $atual["clarnumber"] . "," . $atual["usernumber"] . "," . $atual["clardate"] . "," . $atual["clardatediff"] . "," . $atual["clardatediffans"] . "," . $atual["clarproblem"] . "," . "'" . escape_string($atual["clardata"]) . "'," . $atual["claranswer"] . "," . "'" . escape_string($atual["clarstatus"]) . "'," . $atual["clarjudge"] . "," . $atual["clarjudgesite"] . "," . $atual["updatetime"] . ")"); $ins++; } } } echo " deletions={$del}, updates={$upd}, insertions={$ins}\n\n"; // sincronizando clars $r = DBExec($t, "select * from clartable where contestnumber={$contest} and clarsitenumber={$localsite}"); $rr = DBExec($c, "select * from clartable where contestnumber={$contest} and clarsitenumber={$localsite}"); $n = DBnLines($r); $nn = DBnLines($rr); echo "clars: external(site={$site}, reading={$localsite})={$n}, local={$nn}\n"; for ($k = 0; $k < $nn; $k++) { $needed[$k] = false; } for ($j = 0; $j < $n; $j++) { $la = DBRow($r, $j); for ($k = 0; $k < $nn; $k++) { $aqui = DBRow($rr, $k); if ($la["clarnumber"] == $aqui["clarnumber"] && $la["contestnumber"] == $aqui["contestnumber"] && $la["clarsitenumber"] == $aqui["clarsitenumber"]) { $needed[$k] = true; if ($la["updatetime"] > $aqui["updatetime"]) { $situacao[$j] = "atualizar"; } else { $situacao[$j] = "ok"; } break; } } if ($k >= $nn) { $situacao[$j] = "inserir"; } } $upd = 0; $ins = 0; for ($j = 0; $j < $n; $j++) { $atual = DBRow($r, $j); if ($atual["claranswer"] == "") { $atual["claranswer"] = "null"; } else { $atual["claranswer"] = "'" . escape_string($atual["claranswer"]) . "'"; } if ($atual["clarjudge"] == "") { $atual["clarjudge"] = "null"; } if ($atual["clarjudgesite"] == "") { $atual["clarjudgesite"] = "null"; } if ($atual["updatetime"] == "") { $atual["updatetime"] = time(); } if ($situacao[$j] == "atualizar") { DBExec($c, "update clartable set " . "usernumber=" . $atual["usernumber"] . "," . "clardate=" . $atual["clardate"] . "," . "clardatediff=" . $atual["clardatediff"] . "," . "clardatediffans=" . $atual["clardatediffans"] . "," . "clarproblem=" . $atual["clarproblem"] . "," . "clardata='" . escape_string($atual["clardata"]) . "'," . "claranswer=" . $atual["claranswer"] . "," . "clarstatus='" . escape_string($atual["clarstatus"]) . "'," . "clarjudge=" . $atual["clarjudge"] . "," . "clarjudgesite=" . $atual["clarjudgesite"] . "," . "updatetime=" . $atual["updatetime"] . " where contestnumber={$contest} and clarsitenumber=" . $atual["clarsitenumber"] . " and clarnumber=" . $atual["clarnumber"] . " and updatetime<" . $atual["updatetime"]); $upd++; } else { if ($situacao[$j] == "inserir") { $ins++; echo "Clar inserts shouldn't exist (clarnumber=" . $atual["clarnumber"] . ")...\n"; } } } echo " updates={$upd}, insertions={$ins}\n\n"; // sincronizando runs $r = DBExec($t, "select * from runtable where contestnumber={$contest} and runsitenumber={$site}"); $rr = DBExec($c, "select * from runtable where contestnumber={$contest} and runsitenumber={$site}"); $n = DBnLines($r); $nn = DBnLines($rr); echo "runs: external(site={$site}, reading={$site})={$n}, local={$nn}\n"; for ($k = 0; $k < $nn; $k++) { $needed[$k] = false; } for ($j = 0; $j < $n; $j++) { $la = DBRow($r, $j); for ($k = 0; $k < $nn; $k++) { $aqui = DBRow($rr, $k); if ($la["runnumber"] == $aqui["runnumber"] && $la["contestnumber"] == $aqui["contestnumber"] && $la["runsitenumber"] == $aqui["runsitenumber"]) { $needed[$k] = true; if ($la["updatetime"] > $aqui["updatetime"]) { $situacao[$j] = "atualizar"; } else { $situacao[$j] = "ok"; } break; } } if ($k >= $nn) { $situacao[$j] = "inserir"; } } $del = 0; for ($k = 0; $k < $nn; $k++) { $atual = DBRow($rr, $k); if (!$needed[$k]) { $del++; DBExec($c, "delete from runtable where contestnumber={$contest} and runsitenumber={$site} and runnumber=" . $atual["runnumber"]); } } $upd = 0; $ins = 0; for ($j = 0; $j < $n; $j++) { $atual = DBRow($r, $j); /* $r2 = DBExec ($c,"select * from runtable where contestnumber=$contest and runsitenumber=".$atual["runsitenumber"]. " and runnumber=".$atual["runnumber"]." for update"); if (DBnLines($r2)>0) { $p = DBRow($r2, 0); DB_lo_unlink($c, $p["rundata"]); } */ if ($atual["runjudge"] == "") { $atual["runjudge"] = "null"; } if ($atual["runjudgesite"] == "") { $atual["runjudgesite"] = "null"; } if ($atual["updatetime"] == "") { $atual["updatetime"] = time(); } if ($situacao[$j] == "atualizar") { $upd++; DBExec($c, "update runtable set " . "usernumber=" . $atual["usernumber"] . "," . "rundate=" . $atual["rundate"] . "," . "rundatediff=" . $atual["rundatediff"] . "," . "rundatediffans=" . $atual["rundatediffans"] . "," . "runproblem=" . $atual["runproblem"] . "," . "runlangnumber=" . $atual["runlangnumber"] . "," . "runanswer=" . $atual["runanswer"] . "," . "runstatus='" . escape_string($atual["runstatus"]) . "'," . "runjudge=" . $atual["runjudge"] . "," . "runjudgesite=" . $atual["runjudgesite"] . "," . "runfilename='" . escape_string($atual["runfilename"]) . "'," . "updatetime=" . $atual["updatetime"] . " where contestnumber={$contest} and runsitenumber=" . $atual["runsitenumber"] . " and runnumber=" . $atual["runnumber"] . " and updatetime<" . $atual["updatetime"]); } else { if ($situacao[$j] == "inserir") { $ins++; DBExec($t, "begin work"); $in = DB_lo_open($t, $atual["rundata"], "r"); if (!$in) { $o = "0"; } else { $o = DB_lo_create($c); $out = DB_lo_open($c, $o, "w"); while (($buf = DB_lo_read($in, 1000)) != false) { DB_lo_write($out, $buf); } DB_lo_close($out); DB_lo_close($in); $in = DB_lo_open($t, $atual["rundata"], "r"); if (!$in) { $o = "0"; LOGLevel("Run not saved as file (run=" . $atual["runnumber"] . ",site=" . $atual["runsitenumber"] . ",contest={$contest}", 1); } else { $sitess = $atual["runsitenumber"]; $nss = $atual["runnumber"]; $user = $atual["usernumber"]; $problem = $atual["runproblem"]; $filename = escape_string($atual["runfilename"]); $ttimet = $atual["rundate"]; $fp = fopen("/tmp/boca/contest{$contest}.site{$sitess}.run{$nss}.user{$user}." . "problem{$problem}.time{$ttimet}.{$filename}", "w"); if ($fp) { while (($buf = DB_lo_read($in, 1000)) != false) { fwrite($fp, $buf); } fclose($fp); $fp = fopen("/tmp/check/contest{$contest}.site{$sitess}.run{$nss}.user{$user}." . "problem{$problem}.time{$ttimet}.{$filename}.check", "w"); if ($fp) { fwrite($fp, "1"); fclose($fp); } else { LOGLevel("Run not saved as check file (run=" . $atual["runnumber"] . ",site=" . $atual["runsitenumber"] . ",contest={$contest}", 1); } } else { LOGLevel("Run not saved as file (run=" . $atual["runnumber"] . ",site=" . $atual["runsitenumber"] . ",contest={$contest}", 1); } DB_lo_close($out); } } DBExec($c, "insert into runtable (contestnumber, runsitenumber, runnumber, usernumber, rundate," . "rundatediff, rundatediffans, runproblem, runfilename, rundata, runanswer, runstatus, runjudge," . "runjudgesite, runlangnumber, updatetime) " . "values (" . $contest . "," . $atual["runsitenumber"] . "," . $atual["runnumber"] . "," . $atual["usernumber"] . "," . $atual["rundate"] . "," . $atual["rundatediff"] . "," . $atual["rundatediffans"] . "," . $atual["runproblem"] . "," . "'" . escape_string($atual["runfilename"]) . "',{$o}," . $atual["runanswer"] . "," . "'" . escape_string($atual["runstatus"]) . "'," . $atual["runjudge"] . "," . $atual["runjudgesite"] . "," . $atual["runlangnumber"] . "," . $atual["updatetime"] . ")"); DBExec($t, "commit work"); } } } echo " deletions={$del}, updates={$upd}, insertions={$ins}\n\n"; // sincronizando runs $r = DBExec($t, "select * from runtable where contestnumber={$contest} and runsitenumber={$localsite}"); $rr = DBExec($c, "select * from runtable where contestnumber={$contest} and runsitenumber={$localsite}"); $n = DBnLines($r); $nn = DBnLines($rr); echo "runs: external(site={$site}, reading={$localsite})={$n}, local={$nn}\n"; for ($k = 0; $k < $nn; $k++) { $needed[$k] = false; } for ($j = 0; $j < $n; $j++) { $la = DBRow($r, $j); for ($k = 0; $k < $nn; $k++) { $aqui = DBRow($rr, $k); if ($la["runnumber"] == $aqui["runnumber"] && $la["contestnumber"] == $aqui["contestnumber"] && $la["runsitenumber"] == $aqui["runsitenumber"]) { $needed[$k] = true; if ($la["updatetime"] > $aqui["updatetime"]) { $situacao[$j] = "atualizar"; if ($la["runanswer"] != "") { $rrr = DBExec($c, "select * from answertable where answernumber=" . $la["runanswer"] . " and contestnumber=" . $la["contestnumber"]); $ans = DBnLines($rrr) > 0 ? DBRow($rrr, 0) : null; if ($ans == null) { echo "Problem with the answer table. Unable to send balloon because the answer was " . "not found (run=" . $la["runnumber"] . ", site=" . $la["runsite"] . ", contest=" . $la["contestnumber"] . ", answer=" . $la["runanswer"] . ")."; $yesla = 'x'; } else { $yesla = $ans["yes"]; } } else { $yesla = 'f'; } if ($aqui["runanswer"] != "") { $rrr = DBExec($c, "select * from answertable where answernumber=" . $aqui["runanswer"] . " and contestnumber=" . $aqui["contestnumber"]); $ans = DBnLines($rrr) > 0 ? DBRow($rrr, 0) : null; if ($ans == null) { echo "Problem with the answer table. Unable to send balloon because the answer was " . "not found (run=" . $aqui["runnumber"] . ", site=" . $aqui["runsite"] . ", contest=" . $aqui["contestnumber"] . ", answer=" . $aqui["runanswer"] . ")."; $yesaqui = 'x'; } else { $yesaqui = $ans["yes"]; } } else { $yesaqui = 'f'; } if ($yesla == 't' && $yesaqui == 'f') { $rrr = DBExec($c, "select * from sitetable where contestnumber=" . $aqui["contestnumber"] . " and sitenumber={$localsite}"); if (DBnLines($rrr) <= 0) { echo "Site info not found (contest={$aqui["contestnumber"]}, site={$localsite})."; } else { $b = DBRow($rrr, 0); $ti = $b["sitestartdate"]; $tempo = time(); $ta = $tempo - $ti; $tf = $b["sitelastmileanswer"]; // if ($ta < $tf) { $rrr = DBExec($c, "select * from usertable where contestnumber=" . $aqui["contestnumber"] . " and usersitenumber={$localsite} and usernumber=" . $aqui["usernumber"]); if (DBnLines($rrr) <= 0) { echo "User info not found (contest={$aqui["contestnumber"]}, " . "site={$localsite}, user={$aqui["runusernumber"]})."; } else { $u = DBRow($rrr, 0); $rrr = DBExec($c, "select * from problemtable where contestnumber=" . $aqui["contestnumber"] . " and problemnumber=" . $aqui["runproblem"]); if (DBnLines($rrr) <= 0) { echo "Problem info not found (contest={$aqui["contestnumber"]}, " . "problem={$aqui["runproblem"]})."; } else { $p = DBRow($rrr, 0); mail("balloon@mainserver", "YES: team=" . $u["username"] . ", problem=" . $p["problemname"], "User " . $u["username"] . " should receive a balloon for " . $p["problemfullname"] . "\n"); } } // } } } else { if ($yesla == 'f' && $yesaqui == 't') { $rrr = DBExec($c, "select * from usertable where contestnumber=" . $aqui["contestnumber"] . " and usersitenumber={$localsite} and usernumber=" . $aqui["usernumber"]); if (DBnLines($rrr) <= 0) { echo "User info not found (contest={$aqui["contestnumber"]}, " . "site={$localsite}, user={$aqui["runusernumber"]})."; } else { $u = DBRow($rrr, 0); $rrr = DBExec($c, "select * from problemtable where contestnumber=" . $aqui["contestnumber"] . " and problemnumber=" . $aqui["runproblem"]); if (DBnLines($rrr) <= 0) { echo "Problem info not found (contest={$aqui["contestnumber"]}, " . "problem={$aqui["runproblem"]})."; } else { $p = DBRow($rrr, 0); mail("balloon@mainserver", "NO: team=" . $u["username"] . ", problem=" . $p["problemname"], "Remove the balloon from user " . $u["username"] . " for " . $p["problemfullname"] . "\n"); } } } } } else { $situacao[$j] = "ok"; } break; } } if ($k >= $nn) { $situacao[$j] = "inserir"; } } $upd = 0; $ins = 0; for ($j = 0; $j < $n; $j++) { $atual = DBRow($r, $j); if ($atual["runjudge"] == "") { $atual["runjudge"] = "null"; } if ($atual["runjudgesite"] == "") { $atual["runjudgesite"] = "null"; } if ($atual["updatetime"] == "") { $atual["updatetime"] = time(); } if ($situacao[$j] == "atualizar") { $upd++; DBExec($c, "update runtable set " . "usernumber=" . $atual["usernumber"] . "," . "rundate=" . $atual["rundate"] . "," . "rundatediff=" . $atual["rundatediff"] . "," . "rundatediffans=" . $atual["rundatediffans"] . "," . "runproblem=" . $atual["runproblem"] . "," . "runlangnumber=" . $atual["runlangnumber"] . "," . "runanswer=" . $atual["runanswer"] . "," . "runstatus='" . escape_string($atual["runstatus"]) . "'," . "runjudge=" . $atual["runjudge"] . "," . "runjudgesite=" . $atual["runjudgesite"] . "," . "runfilename='" . escape_string($atual["runfilename"]) . "'," . "updatetime=" . $atual["updatetime"] . " where contestnumber={$contest} and runsitenumber=" . $atual["runsitenumber"] . " and runnumber=" . $atual["runnumber"] . " and updatetime<" . $atual["updatetime"]); } else { if ($situacao[$j] == "inserir") { $ins++; echo "Run Inserts shouldn't exist (run=" . $atual["runnumber"] . ")..."; } } } echo " updates={$upd}, insertions={$ins}\n\n"; DBExec($c, "commit work"); DBClose($t); } DBClose($c); }
function Logout() { global $db, $TBLName; DBConnect(); $db->Execute("DELETE FROM {$TBLName}tmp_invoice WHERE USERNAME='******'Username']}'"); $db->Execute("DELETE FROM {$TBLName}tmp_offer WHERE USERNAME='******'Username']}'"); DBClose(); }