} define("REDIRECT_BLOG_URL", "/commune/drugoe/5000/obschenie/"); // @todo Переключение версток сайта, после всех тестов удалить // #0017167 /*if(isset($_GET['template'])) { if($_GET['template'] == 'new') { setcookie('template_site', "template3.php", time()+60*60*24*30); $_COOKIE['template_site'] = "template3.php"; } if($_GET['template'] == 'old') { setcookie('template_site', "template2.php", time()+60*60*24*30); $_COOKIE['template_site'] = "template2.php"; } }*/ setLastUserAction(); if ($_POST) { csrf_magic(); } if (!$_SESSION['rand']) { $_SESSION['rand'] = csrf_token(); } if ($UID) { // Доступ пользователя к функциям сайта require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/registration.php"; $REG = new registration(); $REG->listenerAccess($_POST); if ($UID > 0) { users::regVisit(); $memBuff = new memBuff(); //Проверяем, не был ли изменен наш баланс действиями других пользователей
/** * Деструктор. Закрывает открытую транзакцию и записывает в файл(ы) debug информацию. * */ public function __destruct() { --self::$objects; if ($this->debugLog) { $log = new log("db/" . $this->alias . "/debug/" . $this->debug); for ($i = 0; $i < count($this->debugLog); $i++) { $log->writeln($this->debugLog[$i]['text']); } } $log = new log("db/" . $this->alias . '/' . date('Y-m-d') . ".log"); if ($this->log) { $log->writeln($this->log); } if ($this->_transaction) { $rollback = false; $xstat = pg_transaction_status($this->_transaction); $xcodes = array(PGSQL_TRANSACTION_UNKNOWN => 'PGSQL_TRANSACTION_UNKNOWN', PGSQL_TRANSACTION_IDLE => 'PGSQL_TRANSACTION_IDLE', PGSQL_TRANSACTION_INTRANS => 'PGSQL_TRANSACTION_INTRANS', PGSQL_TRANSACTION_INERROR => 'PGSQL_TRANSACTION_INERROR', PGSQL_TRANSACTION_ACTIVE => 'PGSQL_TRANSACTION_ACTIVE'); switch ($xstat) { case PGSQL_TRANSACTION_INTRANS: case PGSQL_TRANSACTION_INERROR: case PGSQL_TRANSACTION_ACTIVE: $rollback = true; break; } if ($rollback) { $err = "Transaction status is BAD and it rollbacked: {$xcodes[$xstat]}, name=" . $this->alias; $this->rollback(); } else { $err = "Transaction counter is BAD on DESTRUCT: status {$xcodes[$xstat]}"; $this->_transaction = NULL; } $this->err($err); } if (!self::$objects) { setLastUserAction(); if (DB::$_stby_log) { // можно убрать, отладочное. $stby_db = new DB('stat'); setlocale(LC_ALL, 'en_US.UTF-8'); foreach (DB::$_stby_log as $key => $val) { list($val['day'], $val['real_mask'], $val['opts']) = explode('=', $key); $sql = "\n UPDATE stby_log2\n SET master_cnt = master_cnt + ?i, standby_cnt = standby_cnt + ?i,\n master_time = master_time + interval ?, standby_time = standby_time + ?, ro_errors_cnt = ro_errors_cnt + ?i\n WHERE day = ? AND opts = ? AND real_mask = ?i\n "; $res = $stby_db->query($sql, (int) $val['master_cnt'], (int) $val['standby_cnt'], (double) $val['master_time'] . ' seconds', (double) $val['standby_time'] . ' seconds', (int) $val['ro_errors_cnt'], $val['day'], $val['opts'], (int) $val['real_mask']); if (!pg_affected_rows($res)) { $sql = "\n INSERT INTO stby_log2 (master_cnt, standby_cnt, master_time, standby_time, ro_errors_cnt, day, opts, real_mask)\n VALUES (?i, ?i, ?, ?, ?i, ?, ?, ?i)\n "; $stby_db->query($sql, (int) $val['master_cnt'], (int) $val['standby_cnt'], (double) $val['master_time'] . ' seconds', (double) $val['standby_time'] . ' seconds', (int) $val['ro_errors_cnt'], $val['day'], $val['opts'], (int) $val['real_mask']); } } } DB::$_stby_log = array(); } }