| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 | 
							- <?php
 
- class LtCookie
 
- {
 
- 	public $configHandle;
 
- 	private $secretKey;
 
- 	public function __construct()
 
- 	{
 
- 		if (! $this->configHandle instanceof LtConfig)
 
- 		{
 
- 			if (class_exists("LtObjectUtil", false))
 
- 			{
 
- 				$this->configHandle = LtObjectUtil::singleton("LtConfig");
 
- 			}
 
- 			else
 
- 			{
 
- 				$this->configHandle = new LtConfig;
 
- 			}
 
- 		}
 
- 	}
 
- 	public function init()
 
- 	{ 
 
- 		$this->secretKey = $this->configHandle->get("cookie.secret_key");
 
- 		if(empty($this->secretKey))
 
- 		{
 
- 			trigger_error("cookie.secret_key empty");
 
- 		}
 
- 	}
 
- 	/**
 
- 	 * Decrypt the encrypted cookie
 
- 	 * 
 
- 	 * @param string $encryptedText 
 
- 	 * @return string 
 
- 	 */
 
- 	protected function decrypt($encryptedText)
 
- 	{
 
- 		$key = $this->secretKey;
 
- 		$cryptText = base64_decode($encryptedText);
 
- 		$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
 
- 		$iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);
 
- 		$decryptText = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $cryptText, MCRYPT_MODE_ECB, $iv);
 
- 		return trim($decryptText);
 
- 	}
 
- 	/**
 
- 	 * Encrypt the cookie
 
- 	 * 
 
- 	 * @param string $plainText 
 
- 	 * @return string 
 
- 	 */
 
- 	protected function encrypt($plainText)
 
- 	{
 
- 		$key = $this->secretKey;
 
- 		$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
 
- 		$iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);
 
- 		$encryptText = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $plainText, MCRYPT_MODE_ECB, $iv);
 
- 		return trim(base64_encode($encryptText));
 
- 	}
 
- 	/**
 
- 	 * Set cookie value to deleted with $name
 
- 	 * 
 
- 	 * @param array $args 
 
- 	 * @return boolean 
 
- 	 */
 
- 	public function delCookie($name, $path = '/', $domain = null)
 
- 	{
 
- 		if (isset($_COOKIE[$name]))
 
- 		{
 
- 			if (is_array($_COOKIE[$name]))
 
- 			{
 
- 				foreach($_COOKIE[$name] as $k => $v)
 
- 				{
 
- 					setcookie($name . '[' . $k . ']', '', time() - 86400, $path, $domain);
 
- 				}
 
- 			}
 
- 			else
 
- 			{
 
- 				setcookie($name, '', time() - 86400, $path, $domain);
 
- 			}
 
- 		}
 
- 	}
 
- 	/**
 
- 	 * Get cookie value with $name
 
- 	 * 
 
- 	 * @param string $name 
 
- 	 * @return mixed 
 
- 	 */
 
- 	public function getCookie($name)
 
- 	{
 
- 		$ret = null;
 
- 		if (isset($_COOKIE[$name]))
 
- 		{
 
- 			if (is_array($_COOKIE[$name]))
 
- 			{
 
- 				$ret = array();
 
- 				foreach($_COOKIE[$name] as $k => $v)
 
- 				{
 
- 					$v = $this->decrypt($v);
 
- 					$ret[$k] = $v;
 
- 				}
 
- 			}
 
- 			else
 
- 			{
 
- 				$ret = $this->decrypt($_COOKIE[$name]);
 
- 			}
 
- 		}
 
- 		return $ret;
 
- 	}
 
- 	/**
 
- 	 * Set cookie
 
- 	 * 
 
- 	 * @param array $args 
 
- 	 * @return boolean 
 
- 	 */
 
- 	public function setCookie($name, $value = '', $expire = null, $path = '/', $domain = null, $secure = 0)
 
- 	{
 
- 		if (is_array($value))
 
- 		{
 
- 			foreach($value as $k => $v)
 
- 			{
 
- 				$v = $this->encrypt($v);
 
- 				setcookie($name . '[' . $k . ']', $v, $expire, $path, $domain, $secure);
 
- 			}
 
- 		}
 
- 		else
 
- 		{
 
- 			$value = $this->encrypt($value);
 
- 			setcookie($name, $value, $expire, $path, $domain, $secure);
 
- 		}
 
- 	}
 
- }
 
 
  |