4 && $set_user['kmess'] < 100 ? $set_user['kmess'] : 10; function validate_referer() { if ($_SERVER['REQUEST_METHOD'] !== 'POST') return; if (@!empty($_SERVER['HTTP_REFERER'])) { $ref = parse_url(@$_SERVER['HTTP_REFERER']); if ($_SERVER['HTTP_HOST'] === $ref['host']) return; } die('Invalid request'); } if ($rights) { validate_referer(); } /* ----------------------------------------------------------------- Получаем и фильтруем основные переменные для системы ----------------------------------------------------------------- */ $id = isset($_REQUEST['id']) ? abs(intval($_REQUEST['id'])) : false; $user = isset($_REQUEST['user']) ? abs(intval($_REQUEST['user'])) : false; $act = isset($_REQUEST['act']) ? trim($_REQUEST['act']) : ''; $mod = isset($_REQUEST['mod']) ? trim($_REQUEST['mod']) : ''; $do = isset($_REQUEST['do']) ? trim($_REQUEST['do']) : false; $page = isset($_REQUEST['page']) && $_REQUEST['page'] > 0 ? intval($_REQUEST['page']) : 1; $start = isset($_REQUEST['page']) ? $page * $kmess - $kmess : (isset($_GET['start']) ? abs(intval($_GET['start'])) : 0); $headmod = isset($headmod) ? $headmod : ''; /* ----------------------------------------------------------------- Закрытие сайта / редирект гостей на страницу ожидания ----------------------------------------------------------------- */ if ((core::$system_set['site_access'] == 0 || core::$system_set['site_access'] == 1) && $headmod != 'login' && !core::$user_id) { header('Location: ' . core::$system_set['homeurl'] . '/closed.php'); } /* ----------------------------------------------------------------- Буфферизация вывода ----------------------------------------------------------------- */ if ($set['gzip'] && @extension_loaded('zlib')) { @ini_set('zlib.output_compression_level', 3); ob_start('ob_gzhandler'); } else { ob_start(); } require('classes/kswitcher.php'); $KSwitcher = new KSwitcher; /* ----------------------------------------------------------------- Фиксация местоположений посетителей ----------------------------------------------------------------- */ $sql = ''; $set_karma = unserialize($set['karma']); if ($user_id) { // Фиксируем местоположение авторизованных if (!$datauser['karma_off'] && $set_karma['on'] && $datauser['karma_time'] <= (time() - 86400)) { $sql .= " `karma_time` = '" . time() . "', "; } $movings = $datauser['movings']; if ($datauser['lastdate'] < (time() - 300)) { $movings = 0; $sql .= " `sestime` = '" . time() . "', "; } if ($datauser['place'] != $headmod) { ++$movings; $sql .= " `place` = '" . mysql_real_escape_string($headmod) . "', "; } if ($datauser['browser'] != $agn) $sql .= " `browser` = '" . mysql_real_escape_string($agn) . "', "; $totalonsite = $datauser['total_on_site']; if ($datauser['lastdate'] > (time() - 300)) $totalonsite = $totalonsite + time() - $datauser['lastdate']; mysql_query("UPDATE `users` SET $sql `movings` = '$movings', `total_on_site` = '$totalonsite', `lastdate` = '" . time() . "' WHERE `id` = '$user_id' "); /* ----------------------------------------------------------------- Ссылки на непрочитанное ----------------------------------------------------------------- */ $list = array(); $new_sys_mail = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_mail` WHERE `from_id`='$user_id' AND `read`='0' AND `sys`='1' AND `delete`!='$user_id';"), 0); if ($new_sys_mail) $list[] = 'Система (+' . $new_sys_mail . ')'; $new_mail = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_mail` LEFT JOIN `cms_contact` ON `cms_mail`.`user_id`=`cms_contact`.`from_id` AND `cms_contact`.`user_id`='$user_id' WHERE `cms_mail`.`from_id`='$user_id' AND `cms_mail`.`sys`='0' AND `cms_mail`.`read`='0' AND `cms_mail`.`delete`!='$user_id' AND `cms_contact`.`ban`!='1' AND `cms_mail`.`spam`='0'"), 0); if ($new_mail) $list[] = '' . $lng['mail'] . ' (+' . $new_mail . ')'; if ($datauser['comm_count'] > $datauser['comm_old']) $list[] = '' . $lng['guestbook'] . ' (' . ($datauser['comm_count'] - $datauser['comm_old']) . ')'; $new_album_comm = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_album_files` WHERE `user_id` = '" . core::$user_id . "' AND `unread_comments` = 1"), 0); if ($new_album_comm) $list[] = '' . $lng['albums_comments'] . ''; } else { // Фиксируем местоположение гостей $movings = 0; $session = md5(core::$ip . core::$ip_via_proxy . core::$user_agent); $req = mysql_query("SELECT * FROM `cms_sessions` WHERE `session_id` = '$session' LIMIT 1"); if (mysql_num_rows($req)) { // Если есть в базе, то обновляем данные $res = mysql_fetch_assoc($req); $movings = ++$res['movings']; if ($res['sestime'] < (time() - 300)) { $movings = 1; $sql .= " `sestime` = '" . time() . "', "; } if ($res['place'] != $headmod) { $sql .= " `place` = '" . mysql_real_escape_string($headmod) . "', "; } mysql_query("UPDATE `cms_sessions` SET $sql `movings` = '$movings', `lastdate` = '" . time() . "' WHERE `session_id` = '$session' "); } else { // Если еще небыло в базе, то добавляем запись mysql_query("INSERT INTO `cms_sessions` SET `session_id` = '" . $session . "', `ip` = '" . core::$ip . "', `ip_via_proxy` = '" . core::$ip_via_proxy . "', `browser` = '" . mysql_real_escape_string($agn) . "', `lastdate` = '" . time() . "', `sestime` = '" . time() . "', `place` = '" . mysql_real_escape_string($headmod) . "' "); } }