<?php
defined('GCMS') or die('ОШИБКА!');
// Включаем замер времени генерации страницы
DEFINE('STARTTIME',microtime(true));
//Устанавливаем внутреннюю кодировку
mb_internal_encoding("UTF-8");
// Стартуем сессию
session_name("sid");
session_start();
define('SID',session_id());
//Путь
defined('ROOT') or define('ROOT','./');
$root = $_SERVER['DOCUMENT_ROOT'].'/';
//Подключение к базе
include_once ROOT.'system/config.php';
include_once ROOT.'system/class/mysql.php';
$db = new mysql(DB_HOST, DB_USER, DB_PASS,DB_NAME);
if (mysqli_connect_errno()) {
die('MySQL Base no have connecting!'); 
}
///кодировка
$db -> set_charset('utf8');
include_once ROOT.'system/class/func.php';
$func = new func;
//Удаление рекламы
$db -> query("DELETE FROM `reklama` WHERE `time` < '".time()."'");
///Разбан пользователей
$db -> query("DELETE FROM `ban` WHERE `bantime` < '".time()."' and `serius`<>'blok'");
//Очистка чата от постов,которым уже больше 24 часа
$db -> query("DELETE FROM `chat_post` WHERE `time` < '".(time()-86400)."'");
//Устанавливаем пёрфикс для файлов
$perf=$func->perf($_SERVER['HTTP_HOST']);
//Переменные
$do = isset($_GET['do']) ? trim(shit($_GET['do'])) : NULL;
$act = isset($_GET['act']) ? trim(shit($_GET['act'])) : NULL;
$mode = isset($_GET['mode']) ? trim(shit($_GET['mode'])) : NULL;
$start = abs(intval(htmlentities($db -> real_escape_string($_GET['start']))));
$cit = abs(intval(htmlentities($db -> real_escape_string($_GET['cit']))));
$otv = abs(intval(htmlentities($db -> real_escape_string($_GET['otv']))));
$page = abs(intval(htmlentities($db -> real_escape_string($_GET['page']))));
$id = abs(intval(htmlentities($db -> real_escape_string($_GET['id']))));
$sid = abs(intval(htmlentities($db -> real_escape_string($_GET['sid']))));
$msg = NULL;
//IP + Browser
//получаем реальный IP
 if (!empty($_SERVER['HTTP_CLIENT_IP'])) 
 {
   $ip = $db -> real_escape_string(htmlspecialchars($_SERVER['HTTP_CLIENT_IP']));
 }
 elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
 {
  $ip = $db -> real_escape_string(htmlspecialchars($_SERVER['HTTP_X_FORWARDED_FOR']));
 }
 else
 {
   $ip = $_SERVER['REMOTE_ADDR'];
 }
//получаем браузер
if (isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])) 
{
$browser = $db -> real_escape_string(htmlentities($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']));
}
else
{
$browser = $db -> real_escape_string(htmlentities($_SERVER['HTTP_USER_AGENT'],ENT_QUOTES));
}
///Вытаскиваем настройки из базы
$nas = $db -> query("SELECT * FROM `nastroiki` LIMIT 1");
$nastr = $nas -> fetch_assoc();
$nas -> free();
//Проверка авторизации
$aut = false;
$soz = false;
$stadmin = false;
$admin = false;
$stmd = false;
$md = false;
$vip = false;
if (isset($_COOKIE['uid']) && isset($_COOKIE['pass']) && !isset($_SESSION['uid'])) {
$_SESSION['uid'] = $_COOKIE['uid'];
$_SESSION['pass'] = base64_decode($_COOKIE['pass']);
}
if (isset($_SESSION['uid']) && isset($_SESSION['pass'])) {
$uid = abs(intval(htmlentities($db -> real_escape_string($_SESSION['uid']))));
$pass = md5(md5($_SESSION['pass']));
$sql = $db -> query("SELECT * FROM `users` WHERE `id` = '".$uid."' AND `pass` = '".$pass."' LIMIT 1");
if ($sql -> num_rows > 0) {
$aut = true;
$ya = $sql -> fetch_assoc();
//Сохраняем данные авторизации
$db -> query("UPDATE `users` SET `ip` = '".$ip."', `browser` = '".$browser."', `lasttime` = '".time()."' WHERE `id` = '".$uid."' LIMIT 1");
//Админы и модеры
if ($ya['level'] == 7) $soz = true;
elseif ($ya['level'] == 6) $stadmin = true;
elseif ($ya['level'] == 5) $admin = true;
elseif ($ya['level'] == 4) $stmd = true;
elseif ($ya['level'] == 3) $md = true;
elseif ($ya['level'] == 2) $vip = true;
else {
$soz = false;
$stadmin = false;
$admin = false;
$stmd = false;
$md = false;
$vip = false;
}
} else {
unset($_SESSION['uid']);
unset($_SESSION['pass']);
setcookie('uid','');
setcookie('pass','');
}
unset($sql);
}
////Технический перерыв
if($nastr['siteopen']=='on'){
if($ya['level']<'7'){    
header('location: '.ROOT.'error.php?mode=error');
}
}
///Запрет просмотр гостям
$text=$_SERVER['REQUEST_URI'];
$status = strtr($text, array('/aut.php?do=on' => 'yes','/reg.php' => 'yes','/reg.php?do=true' => 'yes','/lost.php' => 'yes','/lost.php?do=load' => 'yes'));
if($aut==false and $nastr['guestonli']=='no' and $status!='yes'){
header('location: '.ROOT.'aut.php?do=on');
}
///При модерации регистрации
if($nastr['rega']=='3' and $ya['act']=='no'){
header('location: '.ROOT.'aut.php?do=act');}
//Дизайн-оболочка
include_once ROOT.'system/class/diz.php';
$diz = new diz;
if($aut){
//Статусы-присвоение
$st = $db -> query("SELECT `name`,`ball` FROM `status` where `ball`<='".$ya['balls']."' and `dball`>='".$ya['balls']."' and `name`<>'".$ya['status']."' order by `ball` DESC");
while ($s = $st -> fetch_assoc())
{
$db -> query("UPDATE `users` SET `status` = '".$s['name']."' WHERE `id` = '".$ya['id']."'");
}
}
//опции онлайна
require_once (ROOT.'system/online.php');
//опции бана
require_once (ROOT.'system/ban.php');
//опции ботов
require_once (ROOT.'system/bots.php');
//оптимизация меню
$db -> query("UPDATE `menu` SET `sid` = '0' WHERE `id` = '".$sil['id']."' and `sid`<'0'");
///Оптимизация дизайна
$d = $db -> query("SELECT `style`,`id` FROM `users`");
while ($dir = $d -> fetch_assoc())
{
$styles = $db -> query("SELECT * FROM `styles` where `url`='$dir[style]'");
if($styles -> num_rows == 0){
$db -> query("UPDATE `users` SET `style`='$nastr[ststyle]' WHERE `id` = '".$dir['id']."'");
}
}
///Запись время сессии
$lastonline=time() - $ya['lasttime'];
if($lastonline < 120)
{
$online=$ya['online']+$lastonline;
    $db->query("UPDATE `users` SET `online`=".$online." where `id`=" . $ya['id'] . " LIMIT 1");
}
/////////Удаление старых писем
$db -> query("DELETE FROM `mail` WHERE `read`<>'save' and `time` < '".(time()-604800)."'");
// Буфферизация вывода
if ($set['gzip'] && extension_loaded('zlib')) {
    ob_start('ob_gzhandler');
}
else {
    ob_start();
}
?>
