Home  >  Article  >  Backend Development  >  php cookie class (set, get, delete cookie value)

php cookie class (set, get, delete cookie value)

WBOY
WBOYOriginal
2016-07-25 08:56:341188browse
This article introduces a powerful php cookie operation class that can complete operations such as setting cookies, obtaining cookie values, and deleting cookie values. Friends in need can refer to it.

Share a php cookie operation class, which can set cookies, obtain cookies, and delete cookies.

Code:

<?php 
/**
* php cookie类
* class:PHP_COOKIE
* by bbs.it-home.org
*/
class PHP_COOKIE 
{ 
  var $_name  = ""; 
  var $_val   = array(); 
  var $_expires; 
  var $_dir   = '/';// all dirs 
  var $_site  = ''; 

  function PHP_COOKIE($cname, $cexpires="", $cdir="/", $csite="") 
  { 
$this->_name=$cname; 

if($cexpires){ 
  $this->_expires=$cexpires; 
} 
else{ 
  $this->_expires=time() + 60*60*24*30*12; // ~12 months 
} 

$this->_dir=$cdir; 
$this->_site=$csite; 
$this->_val=array(); 
$this->extract(); 
  } 

  function extract($cname="") 
  { 
if(!isset($_COOKIE)){ 
  global $_COOKIE; 
  $_COOKIE=$GLOBALS["HTTP_COOKIE_VARS"]; 
} 

if(empty($cname) && isset($this)){ 
  $cname=$this->_name; 
} 
 
if(!empty($_COOKIE[$cname])){ 

  if(get_magic_quotes_gpc()){ 
$_COOKIE[$cname]=stripslashes($_COOKIE[$cname]); 
  } 
  $arr=unserialize($_COOKIE[$cname]); 

  if($arr!==false && is_array($arr)){ 

foreach($arr as $var => $val){ 

  $_COOKIE[$var]=$val; 

  if(isset($GLOBALS["PHP_SELF"])){ 
  $GLOBALS[$var]=$val; 
  } 
} 
  } 

  if(isset($this)) $this->_val=$arr; 

} 
// 在全局范围内移除cookie 
unset($_COOKIE[$cname]); 
unset($GLOBALS[$cname]); 
} 

function put($var, $value) 
{ 
$_COOKIE[$var]=$value; 
$this->_val["$var"]=$value; 

if(isset($GLOBALS["PHP_SELF"])){ 
  $GLOBALS[$var]=$value; 
} 

if(empty($value)){ 
  unset($this->_val[$var]); 
} 

  } 

  function clear() 
  { 
$this->_val=array(); 
  } 

  function set() 
  { 
if(empty($this->_val)){ 
  $cookie_val=""; 
}  
else { 
  $cookie_val=serialize($this->_val); 
} 
 
if(strlen($cookie_val)>4*1024){ 
  trigger_error("The cookie $this->_name exceeds the specification for the maximum cookie size.  Some data may be lost", E_USER_WARNING); 
} 
setcookie("$this->_name", $cookie_val, $this->_expires, $this->_dir, $this->_site); 
  } 
} 
?>

Call example: 1. Set cookies

<?php
//cookie操作类
include("class.cookie.php"); 
// Create a local object
$PHP_COOKIE=new PHP_COOKIE("test_cookie");

// Add the variables to be saved in the cookie
$PHP_COOKIE->put("namefirst","Jo");
$PHP_COOKIE->put("namelast","Foo");
$PHP_COOKIE->put("number","1234");
$PHP_COOKIE->put("time",time());
   // Set the cookie
$PHP_COOKIE->set();

$PHP_COOKIE=new PHP_COOKIE("test_cookie 123");
// Add the variables to be saved in the cookie
$PHP_COOKIE->put("namefirst","Jo123");
$PHP_COOKIE->put("namelast","Foo13");
$PHP_COOKIE->put("number","123413");
  // Set the cookie
$PHP_COOKIE->set();

echo "<br>The values saved in the cookie test_cookie are:";
echo "<br>namefirst: = $_COOKIE[namefirst]";
echo "<br>namelast: = $_COOKIE[namelast]";
echo "<br>number: = $_COOKIE[number]";
echo "<br>time: = $_COOKIE[time]";
echo "<br><br>END";
?>

2. Get cookies

<?php
include("class.cookie.php"); 

//获取cookie
//从保存的cookie中解析变量,然后加入自己的cookies中
PHP_COOKIE::extract("test_cookie");

//显示cookie
echo "<BR>显示用于测试的一些cookie值" ;
echo "<br> Name: ";
echo $_COOKIE['namefirst']; 
echo " ";
echo $_COOKIE['namelast'];
echo "<br> Number: ";
echo $_COOKIE['number'];
echo "<br> Time: ";
echo $_COOKIE['time'];

echo "<br><br>END";
?>

3. Delete cookies

<?php
include("class.cookie.php"); 

//删除cookie
//方法1. 设置cookie过期时间
//方法2. 调用 clear()与 set()方法

// Create a local object
$PHP_COOKIE=new PHP_COOKIE("test_cookie", time()-86400);
// Set the cookie
$PHP_COOKIE->set();

// Clear all values
#$PHP_COOKIE->clear();
?>


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn