Файл: system/core.php
Строк: 88
<?php
/**
* Author: Elime;
* ICQ: 618878;
* E-mail: elime4@gmail.com;
*/
ini_set('date.timezone', 'Europe/Moscow');
$runtime = microtime(1);
session_start();
header('Content-Type: text/html; charset=utf-8');
/* Константы */
define('ROOT', $_SERVER['DOCUMENT_ROOT']);
/* Подключаем настройки */
require ROOT.'/system/config.php';
/* Настройки для БД */
define('DB_HOST', $db_host);
define('DB_USER', $db_user);
define('DB_PASS', $db_pass);
define('DB_BASE', $db_base);
/* Путь к скрипту */
define('URL', $_URL);
/* Режим отладки */
if($debug == 1)
{
error_reporting(E_ALL);
}
else
{
error_reporting(0);
}
/* Подключение библиотек */
require ROOT.'/system/function.php';
require ROOT.'/system/database.php';
require ROOT.'/system/template.php';
require ROOT.'/system/pagination.php';
/* Подключение к БД и установка кодировки */
$db = new MySQL();
$db->connect();
$db->charset('utf8');
/* Установка шаблонизатора */
$tpl = new Template(ROOT.'/templates');
/* Подключение настроек из БД */
$config = array();
$settings = $db->query("SELECT * FROM `config`");
while($item = $db->fetch($settings))
{
$config[$item['key']] = $item['value'];
}
/* Текущая страница для постраничной навигации */
$page = 1;
if(isset($_GET['page']) and num($_GET['page']) != 0)
{
$page = num($_GET['page']);
}
/* Проверка авторизации */
$login = false;
$user = '';
if(isset($_COOKIE['hash']) and isset($_COOKIE['user_id']))
{
$user = $db->query("SELECT * FROM `users` WHERE `id`='".num($_COOKIE['user_id'])."'");
if($db->num($user) == 1)
{
$user = $db->fetch($user);
if($_COOKIE['hash'] == $user['hash'])
{
$login = true;
}
}
}
/* Обновление счетчика онлайн */
$user_online = 0;
if ($config['online']):
include ROOT.'/SxGeo.php';
$ip = $_SERVER['REMOTE_ADDR'];
$uagent = in($_SERVER["HTTP_USER_AGENT"]);
$uri = in($_SERVER['REQUEST_URI']);
if (!empty($_SERVER['HTTP_REFERER'])) {
$ref = $_SERVER['HTTP_REFERER'];
} else {
$ref = 'Не определен';
}
$result = $db->query("SELECT * FROM `online` WHERE `ip` = '{$ip}'");
$check = $db->fetch($result);
if(empty($check)) {
$SxGeo = new SxGeo(ROOT.'/SxGeoCity.dat');
$data = $SxGeo->getCityFull($ip);
$db->query("INSERT INTO online (ip, uagent, city,country,region,dt, dt_update, views, point_of_entry, exit_point, ref_uri)
VALUES('{$ip}', '{$uagent}', '{$data['city']['name_ru']}','{$data['country']['name_ru']}', '{$data['region']['name_ru']}', NOW(), NOW(), 1, '{$uri}', '{$uri}', '{$ref}')");
} else {
$db->query("UPDATE online SET dt_update = NOW(), views = views + 1, exit_point = '{$uri}' WHERE ip = '{$ip}'");
}
$db->query("DELETE FROM online WHERE dt_update < SUBTIME(NOW(),'0 0:10:0')");
$result = $db->query("SELECT 1 FROM online");
$user_online = $db->num($result);
endif;
/* Устанавливаем переменные для доступа в шаблонах */
$data['db'] = $db;
$data['config'] = $config;
$data['runtime'] = $runtime;
$data['page'] = $page;
$data['login'] = $login;
$data['user'] = $user;
$data['user_online'] = $user_online;
$data['keywords'] = $config['keywords_default'];
$data['description'] = $config['description_default'];