清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
登录 注册 订阅RSS 网站地图 脚本分享网 <?php // cookieClass // Copyright (C) 2005 JRSofty Programming. // http://jrsofty1.stinkbugonline.com // Licensed under GNU/GPL class cookieClass{ var $cName = ''; var $cTime = ''; var $cSerialize = false; var $cPath = ''; function cookieClass($cookieName, $cookieTimeout, $cookieSerialize = false, $cookiePath = "/"){ $this->cName = $cookieName; $this->cTime = $cookieTimeout; $this->cSerialize = $cookieSerialize; $this->cPath = $cookiePath; // This should fix the issue if you have cookies set and THEN turn on the serialization. $iname = $this->cName . "_S"; if($this->cSerialize && !isset($_COOKIE[$iname])){ $cookArr = array(); foreach($_COOKIE as $name=>$val){ if(strpos($name,$this->cName) !== false ){ // make sure it is a cookie set by this application $subname = substr($name,strlen($this->cName) + 1); $cookArr[$subname] = $val; $this->KillCookie($name); } } $this->WriteCookie($cookArr); } // This is the opposite from above. changes a serialized cookie to multiple cookies without loss of data if(!$this->cSerialize && isset($_COOKIE[$iname])){ $cookArr = unserialize($_COOKIE[$iname]); $this->KillCookie($iname); $this->WriteCookie($cookArr); } } function DestroyAllCookies(){ foreach($_COOKIE as $name=>$val){ if(strpos($name,$this->cName) !== false){ $_COOKIE[$name] = NULL; $this->KillCookie($name); } } } function ReadCookie($item){ if($this->cSerialize){ $name = $this->cName . "_S"; if(isset($_COOKIE[$name])){ // handle the cookie as a serialzied variable $sCookie = unserialize($_COOKIE[$name]); if(isset($sCookie[$item])){ return $sCookie[$item]; }else{ return NULL; } }else{ return NULL; } }else{ $name = $this->cName . "_" . $item; if(isset($_COOKIE[$name])){ // handle the item as separate cookies return $_COOKIE[$name]; }else{ return NULL; } } } function KillCookie($cName){ $tStamp = time() - 432000; setcookie($cName,"",$tStamp,$this->cPath); } function WriteCookie($itemArr){ if($this->cSerialize){ $sItems = serialize($itemArr); $name = $this->cName . "_S"; $_COOKIE[$name] = $sItems; $tStamp = time() + $this->cTime; setcookie($name,$sItems,$tStamp,$this->cPath); }else{ $tStamp = time() + $this->cTime; foreach($itemArr as $nam=>$val){ $name = $this->cName . "_" . $nam; $_COOKIE[$name] = $val; setcookie($name,$val,$tStamp,$this->cPath); }e } } } ?>