Вход Регистрация
Файл: onlinepoisk.wm-scripts.ru/vendor/Art/User.php
Строк: 42
<?php
namespace Art;

class 
User {
    private static 
$storage = null;

    public static function 
get( $field = null ) {
        
$user = self::$storage;

        if ( 
$user ) {
            if ( 
$field ) {
                return 
$user->{$field};
            }

            return 
$user;
        }

        return 
null;
    }

    public static function 
genKey() {
        return 
sha1( self::get('id') . time() . uniqid() );
    }

    public static function 
set( $user ) {
        if ( 
is_string($user) /* is json? */ ) {
            
self::$storage = json_decode($user);
        } else {
            
self::$storage = $user;
        }

        
$_SESSION['user'] = json_encode(self::$storage);

        
// session
        
$sess = ModelUserSession::find_by_userid(self::get('id'));

        if ( !
$sess ) {
            
$sess = new ModelUserSession;
            
$sess->userid = self::get('id');
            
$sess->sesskey = self::genKey();
        }

        
$expire = time() + 60*60*24*30;
        
$sess->expiredat = date("Y-m-d H:i:s", $expire);//month
        
$sess->save();

        
setcookie("sesskey", $sess->sesskey, $expire, '/');
    }

    public function 
__construct() {
        if ( isset(
$_SESSION['user']) ) {
            
self::$storage = json_decode($_SESSION['user']);
        } else {
            if ( isset( 
$_COOKIE['sesskey'] ) ) {
                
$sess = ModelUserSession::find_by_sesskey($_COOKIE['sesskey']);
                if ( 
$sess ) {
                    
$user = ModelUser::find_by_id($sess->userid);
                    
self::set($user->to_json());
                }
            }
        }
    }

    public static function 
logout() {
        
self::$storage = null;
        unset(
$_SESSION['user']);

        
setcookie("sesskey", null, 0, '/');
    }
    
}

/*
Техническая поддержка и обновления
http://wm-scripts.ru


*/
Онлайн: 2
Реклама