[php]代码库
define ("DOMAIN", "54dev.com");
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 = $this->encodeC ($value);
@setcookie($name, urlencode($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 $this->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;
}
}