<?

//=============================//
//                             //
//   encodeCookie v0.1         //
//   encodeCookie Class        //
//   encodeCookie.Class.php    //
//   by Stanga Razvan          //
//   razvan_stanga@yahoo.com   //
//   http://www.phprebel.org   //
//                             //
//       MADE IN ROMANIA       //
//                             //
//=============================//

define ("DOMAIN""phprebel.org");
define ("PATH""/");
define ("COOKIEID""encodeCookie");
define ("COOKIEKEY""raz"); // max 5 chars is good

/**
* class encodeCookie
*
* encode cookies before you send them
*
*/
class encodeCookie {
/**
* encodeCookie::$config
*
* configuration
*
*/
     
var $config;

/**
* encodeCookie::encodeCookie()
*
* constructor
*
*/
function encodeCookie () {
    
$this->config = array ();
    
$this->config['cookie_key'] = COOKIEKEY;
    
$this->config['cookie'] = array (
                
'cookie_id'                =>    COOKIEID,
                
'cookie_path'            =>    PATH,
                
'cookie_domain'            =>    DOMAIN,
    );
}

/**
* encodeCookie::set_Cookie()
*
* sets the cookie
*
* @param string $value
* @param integer $sticky
*/
function set_Cookie ($name$value ""$sticky 0) {

    
$exipres "";

    if (
$sticky == 1) {
        
$expires time() + 60*60*24*365;
    }

    
$name $this->config['cookie']['cookie_id'].$name;
    
$newValue encodeC ($value);

    @
setcookie($nameurlencode($newValue), $expires$this->config['cookie']['cookie_path'], $this->config['cookie']['cookie_domain']);
}

/**
* encodeCookie::get_Cookie()
*
* gets the cookie
*
*/
function get_Cookie ($name) {

    if ( isset( 
$_COOKIE[$this->config['cookie']['cookie_id'].$name] ) ) {
        
$cookie urldecode $_COOKIE[$this->config['cookie']['cookie_id'].$name] );
        return 
decodeC ($cookie);
    } else {
        return 
FALSE;
    }

}

/**
* encodeCookie::encodeC()
*
* encodes the cookie
*
*/
function encodeC ($cookie) {

    
$newcookie = array ();
    
$cookie base64_encode ($cookie);

    for ( 
$i=0$i<=strlen ($cookie); $i++ ) {
        
$newcookie$i ] = ord $cookie$i ] ) * $this->encodeKey ();
    }

    
$newcookie implode ('.'$newcookie);

return 
$newcookie;
}

/**
* encodeCookie::decodeC()
*
* decodes the cookie
*
*/
function decodeC ($oldcookie) {

    
$newcookie = array ();
    
$cookie explode ('.'$oldcookie);

    for ( 
$i=0$i<=strlen ($oldcookie); $i++ ) {
        
$newcookie$i ] = chr $cookie$i ] / $this->encodeKey () );
    }

    
$newcookie implode (''$newcookie);
    
$newcookie base64_decode ($newcookie);

return 
$newcookie;
}

/**
* encodeCookie::encodeKey()
*
* encodes the key
*
*/
function encodeKey () {
    
$newkey 0;
    for ( 
$i=0$i<=strlen $this->config['cookie_key'] ); $i++ ) {
        
$newkey += ord $this->config['cookie_key'][ $i ] );
    }
return 
$newkey;
}

}

?>