<?php 
namespace Jackbooted\Util; 
 
use \Jackbooted\Config\Cfg; 
use \Jackbooted\Security\Cryptography; 
/** 
 * @copyright Confidential and copyright (c) 2016 Jackbooted Software. All rights reserved. 
 * 
 * Written by Brett Dutton of Jackbooted Software 
 * brett at brettdutton dot com 
 * 
 * This software is written and distributed under the GNU General Public 
 * License which means that its source code is freely-distributed and 
 * available to the general public. 
 */ 
 
class Cookie extends \Jackbooted\Util\JB { 
    const CRYPTO_KEY = 'hgfads8h4325h7676asdvbe2misaj9fdsa3r'; 
 
    private static $crypto; 
    private static $timeout; 
 
    public static function init () { 
        self::$crypto = new Cryptography ( self::CRYPTO_KEY ); 
        self::$timeout = 14 * 24 * 60 * 60; 
    } 
 
    /** Function to get a Cookie 
     * @param $s The name of the Cookie 
     * @public 
     */ 
    public static function get ( $s, $def='' ) { 
        if ( ! isset ( $_COOKIE[$s] ) ) return $def; 
 
        return self::$crypto->decrypt ( $_COOKIE[$s] ); 
    } 
 
    /** Function to set a Cookie 
     * @param $s The name of the Cookie 
     * @param $val The value of the Cookie 
     * @public 
     */ 
    public static function set ( $key, $val ) { 
        setcookie ( $key, self::$crypto->encrypt ( $val ) , 
                    time () + self::$timeout, 
                    Cfg::get ( 'cookie_path', '/' ) ); 
    } 
 
    /** Function to clear a Cookie 
     * @param $s The name of the Cookie 
     * @public 
     */ 
    public static function clear ( $key ) { 
        self::set ( $key, '' ); 
    } 
} 
 
 |