Вход Регистрация
Файл: app/core/classes/User.php
Строк: 63
<?php

class User {

    public static 
$user = array();

    public static function 
auth() {
        
/* Авторизация */
        
if (isset($_COOKIE['id_user']) && isset($_COOKIE['hashcode']) && $_COOKIE['id_user'] != NULL && $_COOKIE['hashcode'] != NULL) {
            
$userdata = DB::run("SELECT * FROM `users` WHERE `id` = " . abs(intval($_COOKIE['id_user'])) . " AND `hashcode` = '" . Cms::Input($_COOKIE['hashcode']) . "' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
            if (
$userdata['id']) {
                
/* записываем последнее посещение */
                
DB::run("UPDATE `users` SET `date_last`='" . Cms::realtime() . "' WHERE `id`='" . $userdata['id'] . "'");

                
/* онлайн */
                
if (DB::run("SELECT COUNT(*) FROM `online` WHERE `id_user`='" . $userdata['id'] . "'")->fetchColumn() > 0) {
                    
DB::run("UPDATE `online` SET `time`='" . Cms::realtime() . "', `referer`='" . Cms::Input(Cms::setup('home') . '' . Functions::GET_PATH_INFO()) . "' WHERE `id_user`='" . $userdata['id'] . "'");
                } else {
                    
DB::run("INSERT INTO `online` SET 
                       `id_user`='" 
. $userdata['id'] . "', 
                           `ip`='" 
. Recipe::getClientIP() . "', 
                                `browser`='" 
. Recipe::getBrowser() . "',
                                    `referer`='" 
. Cms::Input(Cms::setup('home') . '' . Functions::GET_PATH_INFO()) . "',
                                        `time`='" 
. Cms::realtime() . "'");
                }

                
SmartySingleton::instance()->assign(array(
                    
'newnotice' => DB::run("SELECT COUNT(*) FROM `notice` WHERE `id_user`='" . $userdata['id'] . "' AND `status`='1'")->fetchColumn(),
                    
'newmail' => DB::run("SELECT COUNT(*) FROM `mail` WHERE `user_id`= '" . $userdata['id'] . "' AND `read`='0'")->fetchColumn()
                ));
                
self::$user = $userdata;
                return 
self::$user;
            }
        } else {
            
setcookie('id_user', '', 0, '/');
            
setcookie('hashcode', '', 0, '/');
            
session_destroy();
            
/* онлайн для гостей */
            
if (DB::run("SELECT COUNT(*) FROM `online` WHERE `ip`='" . Recipe::getClientIP() . "' AND `type` = '2'")->fetchColumn() > 0) {
                
DB::run("UPDATE `online` SET `time`='" . Cms::realtime() . "', `referer`='" . Cms::Input(Cms::setup('home') . '' . Functions::GET_PATH_INFO()) . "' WHERE `ip`='" . Recipe::getClientIP() . "' AND `type` = '2'");
            } else {
                
DB::run("INSERT INTO `online` SET 
                           `ip`='" 
. Recipe::getClientIP() . "', 
                                `browser`='" 
. Recipe::getBrowser() . "',
                                    `referer`='" 
. Cms::Input(Cms::setup('home') . '' . Functions::GET_PATH_INFO()) . "',
                                        `type` = '2',
                                            `time`='" 
. Cms::realtime() . "'");
            }
        }
    }

    function 
data($table) {
        
$array = "(SELECT `login` FROM `users` WHERE `users`.`id`=`$table`.`id_user`) AS `login`,
                    (SELECT `avatar` FROM `users` WHERE `users`.`id`=`
$table`.`id_user`) AS `avatar`,
                        (SELECT `level` FROM `users` WHERE `users`.`id`=`
$table`.`id_user`) AS `level`";
        return 
$array;
    }

}
Онлайн: 2
Реклама