Вход Регистрация
Файл: oc-includes/osclass/core/Cookie.php
Строк: 83
<?php if ( ! defined('ABS_PATH')) exit('ABS_PATH is not loaded. Direct access is not allowed.');

/*
 * Copyright 2014 Osclass
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

    
class Cookie
    
{
        public 
$name;
        public 
$val;
        public 
$expires;
        
        private static 
$instance;

        public static function 
newInstance() {
            if(!
self::$instance instanceof self) {
                
self::$instance = new self;
            }
            return 
self::$instance;
        }

        function 
__construct()
        {
            
$this->val = array();
            
$web_pat = (MULTISITE) ? osc_multisite_url() : WEB_PATH;
            
$this->name substrmd5($web_pat), 0);
            
$this->expires time() + 3600// 1 hour by default
            
if ( isset( $_COOKIE[$this->name] ) )
            {
                list(
$vars$vals) = explode("&"$_COOKIE[$this->name]);
                
$vars explode("._."$vars);
                
$vals explode("._."$vals);
                while(list(
$key$var) = each($vars))
                {
                    
$this->val["$var"] = $vals[$key];
                    
$_COOKIE["$var"] = $vals[$key];
                }
            }
        }
        
        function 
push($var$value)
        {
            
$this->val["$var"] = $value;
            
$_COOKIE["$var"] = $value;
        }
        
        function 
pop($var)
        {
            unset(
$this->val[$var]);
            unset(
$_COOKIE[$var]);
        }
            
        function 
clear()
        {
            
$this->val = array();
        }
            
        function 
set()
        {
            
$cookie_val "";
            if(
is_array($this->val) && count($this->val) > 0)
            {
                
$cookie_val '';
                
$vars $vals = array();
                
                foreach (
$this->val as $key => $curr)
                {
                    if(
$curr !== "")
                    {
                        
$vars[] = $key;
                        
$vals[] = $curr;
                    }
                }
                if(
count($vars) > && count($vals) > 0) {
                    
$cookie_val implode("._."$vars) . "&" implode("._."$vals);
                }
            }
            
setcookie($this->name$cookie_val$this->expiresREL_WEB_URL);
        }
        
        function 
num_vals() {
            return(
count($this->val));
        }
        
        function 
get_value($str) {
            if (isset(
$this->val[$str])) return($this->val[$str]);
            return(
'');
        }

        
//$tm: time in seconds
        
function set_expires($tm) {
            
$this->expires time() + $tm;
        }
    }
    
?>
Онлайн: 0
Реклама