Вход Регистрация
Файл: 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 > 2 ) {

        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']) != -1 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::$domain, NULL, TRUE);        
    }

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

    /**
     * Удаляет кукис пользователя
     * @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']);
    }

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