public static function upsertGuest() { try { Db::getDb()->beginTransaction(); $stmt = Db::getDb()->prepare('UPDATE guests SET last = NOW() WHERE remote_addr = :ip'); $stmt->execute([':ip' => $_SERVER['REMOTE_ADDR']]); $stmt = Db::getDb()->prepare('INSERT INTO guests(remote_addr, http_user_agent) SELECT :ip, :ua WHERE NOT EXISTS (SELECT 1 FROM guests WHERE remote_addr = :ip)'); $stmt->execute([':ip' => $_SERVER['REMOTE_ADDR'], ':ua' => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '']); Db::getDb()->commit(); } catch (PDOException $e) { Db::dumpException($e); } }
require_once $_SERVER['DOCUMENT_ROOT'] . '/class/autoload.php'; use NERDZ\Core\User; use NERDZ\Core\Captcha; use NERDZ\Core\Db; $user = new User(); if (!$user->isLogged()) { die(NERDZ\Core\Utils::jsonResponse('error', $user->lang('REGISTER'))); } $cptcka = new Captcha(); $captcha = isset($_POST['captcha']) ? $_POST['captcha'] : false; if (!$captcha) { die(NERDZ\Core\Utils::jsonResponse('error', $user->lang('MISSING') . "\n" . $user->lang('CAPTCHA'))); } if (!$cptcka->check($captcha)) { die(NERDZ\Core\Utils::jsonResponse('error', $user->lang('WRONG_CAPTCHA'))); } $create = true; //required by validateproject.php require_once $_SERVER['DOCUMENT_ROOT'] . '/pages/common/validateproject.php'; try { Db::getDb()->beginTransaction(); Db::query(['INSERT INTO groups ("description","name") VALUES (:description,:name)', [':description' => $projectData['description'], ':name' => $projectData['name']]], Db::NO_RETURN); $o = Db::query(['SELECT counter FROM groups WHERE name = :name', [':name' => $projectData['name']]], Db::FETCH_OBJ); Db::query(['INSERT INTO groups_owners("from", "to") VALUES(:owner, :group)', [':owner' => $projectData['owner'], ':group' => $o->counter]], Db::NO_RETURN); Db::getDb()->commit(); } catch (\PDOException $e) { Db::getDb()->rollBack(); die(NERDZ\Core\Utils::jsonResponse('error', $user->lang('ERROR'))); } die(NERDZ\Core\Utils::jsonResponse('ok', 'OK'));