php类用于处理cookie
2018-07-20 来源:open-open
<?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 } } } ?>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
下一篇:PHP判断浏览器
最新资讯
热门推荐