<?php

/*
////////////////////////////////////////////////////////////////////////////////
// JohnCMS                                                                    //
// Официальный сайт сайт проекта:      http://johncms.com                     //
// Дополнительный сайт поддержки:      http://gazenwagen.com                  //
////////////////////////////////////////////////////////////////////////////////
// JohnCMS core team:                                                         //
// Евгений Рябинин aka john77          john77@johncms.com                     //
// Олег Касьянов aka AlkatraZ          alkatraz@johncms.com                   //
//                                                                            //
// Информацию о версиях смотрите в прилагаемом файле version.txt              //
////////////////////////////////////////////////////////////////////////////////
*/

defined('_IN_JOHNCMS') or die('Error: restricted access');







// Стартуем сессию
session_name("SESID");
session_start();





////////////////////////////////////////////////////////////
// Дата и время                                           //
////////////////////////////////////////////////////////////
date_default_timezone_set('Europe/Moscow');
$realtime = time() + $sdvigclock * 3600;
$mon = date("m", $realtime);
if (substr($mon, 0, 1) == 0) {
    $mon = str_replace("0", "", $mon);
}
$day = date("d", $realtime);
if (substr($day, 0, 1) == 0) {
    $day = str_replace("0", "", $day);
}
$mesyac = array(1 => "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");


////////////////////////////////////////////////////////////
// Авторизация по сессии                                  //
////////////////////////////////////////////////////////////
if (isset ($_SESSION['uid']) && isset ($_SESSION['ups'])) {
    $user_id = intval($_SESSION['uid']);
    $user_ps = $_SESSION['ups'];
}

////////////////////////////////////////////////////////////
// Авторизация по COOKIE                                  //
////////////////////////////////////////////////////////////
elseif (isset ($_COOKIE['cuid']) && isset ($_COOKIE['cups'])) {
    $user_id = intval(base64_decode($_COOKIE['cuid']));
    $_SESSION['uid'] = $user_id;
    $user_ps = md5(md5(base64_decode($_COOKIE['cups'])));
    $_SESSION['ups'] = $user_ps;
    $cookauth = true;
}

////////////////////////////////////////////////////////////
// Запрос в базе данных по юзеру                          //
////////////////////////////////////////////////////////////
if ($user_id && $user_ps) {
    $req = mysql_query("SELECT * FROM `users` WHERE `id` = '$user_id' LIMIT 1");
    if (mysql_num_rows($req)) {
        $datauser = mysql_fetch_assoc($req);
        if ($user_ps === $datauser['password']) {
            // Получаем общие настройки пользователя
            $set_user = array();
            $set_user = unserialize($datauser['set_user']);
            if (empty ($set_user)) {
                // Задаем пользовательские настройки по-умолчанию
                $set_user['avatar'] = 1;
                $set_user['smileys'] = 1;
                $set_user['translit'] = 1;
                $set_user['quick_go'] = 1;
                $set_user['gzip'] = 1;
                $set_user['online'] = 1;
                $set_user['movings'] = 1;
                $set_user['digest'] = 1;
                $set_user['sdvig'] = 0;
                $set_user['kmess'] = 10;
                $set_user['skin'] = 'default';
            }
            $kmess = (int) $set_user['kmess'];            // Число сообщений на страницу
            // Получаем данные пользователя
            $login = $datauser['name'];            // Логин (Ник) пользователя
            $rights = $datauser['rights'];

            ////////////////////////////////////////////////////////////
            // Проверка юзера на бан                                  //
            ////////////////////////////////////////////////////////////
            $req = mysql_query("SELECT * FROM `cms_ban_users` WHERE `user_id` = '$user_id' AND `ban_time` > '$realtime'") or die('Error: table "cms_ban_users"');
            if (mysql_num_rows($req)) {
                $rights = 0;
                $ban = array();
                while ($res = mysql_fetch_row($req)) $ban[$res[4]] = 1;
                mysql_free_result($req);
            }
            // Если юзера не было на сайте более 1-го часа , показываем дайджест
            if ($datauser['lastdate'] < ($realtime - 3600) && $set_user['digest'] && $headmod == 'mainpage')
                header('Location: ' . $home . '/index.php?act=digest&last=' . $datauser['lastdate']);
        }
        else {
            // Если пароль не совпадает, уничтожаем переменные сессии и чистим куки
            unset ($_SESSION['uid']);
            unset ($_SESSION['ups']);
            setcookie('cuid', '');
            setcookie('cups', '');
            $user_id = false;
            $user_ps = false;
        }
    }
    else {
        // Если юзер не найден, уничтожаем переменные сессии и чистим куки
        unset ($_SESSION['uid']);
        unset ($_SESSION['ups']);
        setcookie('cuid', '');
        setcookie('cups', '');
        $user_id = false;
        $user_ps = false;
    }
}


// Актуализация переменных
$start = isset ($_REQUEST['page']) ? $page * $kmess - $kmess : $start;

// Буфферизация вывода
if ($set['gzip'] && @ extension_loaded('zlib')) {
    @ ini_set('zlib.output_compression_level', 3);
    ob_start('ob_gzhandler');
}
else {
    ob_start();
}

?>