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

if ( !defined('CS') ) { define('CS''cms'); }
if ( !
defined('SS') ) { define('SS''cms'); }

class 
cmsSession {

    private static 
$instance;

    public static 
$domain;

    public function 
__construct() {

        
$domain_cookie       explode('.'$_SERVER['HTTP_HOST']);
        
$domain_cookie_count count($domain_cookie);
        
$domain_allow_count  = -2;

        if ( 
$domain_cookie_count ) {

        if ( 
in_array($domain_cookie[$domain_cookie_count-2], array('com''net''org') )) $domain_allow_count = -3;
        if ( 
$domain_cookie[$domain_cookie_count-1] == 'ua' $domain_allow_count = -3;
        
$domain_cookie array_slice($domain_cookie$domain_allow_count);
        }

        if ( 
ip2long($_SERVER['HTTP_HOST']) != -AND ip2long($_SERVER['HTTP_HOST']) !== FALSE self::$domain null;
        else 
self::$domain '.' implode('.'$domain_cookie);

        
ini_set('session.cookie_domain'self::$domain);

    }

    private function 
__clone() {}

    
//--------------------------- -----------------------------//

    
public static function getInstance() {
        if (
self::$instance === null) {
            
self::$instance = new self;
        }
        return 
self::$instance;
    }

    
//--------------------------- -----------------------------//

    /**
     * Устанавливает кукис посетителю
     * @param string $name
     * @param string $value
     * @param int $time
     */
    
public function setCookie($name$value$time '') {
        if (!
$time$time round(time() + 3600 24 365);
        
setcookie(CS.'['.$name.']'$value$time'/'self::$domainNULLTRUE);        
    }

    
//--------------------------- -----------------------------//

    /**
     * Удаляет кукис пользователя
     * @param string $name
     */
    
public function unsetCookie($name) {
        
setcookie(CS.'['.$name.']'''time()-3600'/');
    }

    
//--------------------------- -----------------------------//

    /**
     * Возвращает значение кукиса
     * @param string $name
     * @return string || false
     */
    
public function getCookie($name) {
        if (isset(
$_COOKIE[CS][$name])) {
            return 
$_COOKIE[CS][$name];
        } else {
            return 
false;
        }
    }

    
//--------------------------- -----------------------------//

    /**
     * Сохраняет переменную в сессии
     * @param str $param Название переменной
     * @param mixed $value Значение
     * @return bool
     */
    
public static function setSession($param$value) {
        
$_SESSION[SS][$param] = $value;
        return 
true;
    }

    
//--------------------------- -----------------------------//

    /**
     * Извлекает переменную из сессии
     * @param str $param Название переменной
     * @return bool
     */
    
public static function getSession($param) {
        if (isset(
$_SESSION[SS][$param])) {
            return 
$_SESSION[SS][$param];
        } else {
            return 
false;
        }
    }

    
//--------------------------- -----------------------------//

    /**
     * Удаляет переменную из сессии
     * @param str $param Название переменной
     */
    
public static function unsetSession($param) {
        unset(
$_SESSION[SS][$param]);
    }

    
//--------------------------- -----------------------------//

    /**
     * Добавляет сообщение в сессию
     * @param string $message
     * @param string $class
     */
    
public static function addMessage($message$class 'error') {
        if (!
in_array($class, array('info''ok''error'))) return;
        
$_SESSION['core_message'][] = array($class$message);
    }

    
//--------------------------- -----------------------------//

    /*
     * Возвращает массив сообщений сохраненных в сессии
     */
    
public static function getMessages() {

        if (isset(
$_SESSION['core_message'])) {
            
$messages $_SESSION['core_message'];
        } else {
            
$messages false;
        }

        
self::clearMessages();
        return 
$messages;

    }

    
//--------------------------- -----------------------------//

    /*
     * Очищает очередь сообщений сессии
     */
    
public static function clearMessages() {
        unset(
$_SESSION['core_message']);
    }

}
?>
Онлайн: 0
Реклама