Home > Backend Development > PHP Tutorial > How to use cookies in PHP to implement accessible operations on second-level domain names, cookie second-level domain names_PHP tutorial

How to use cookies in PHP to implement accessible operations on second-level domain names, cookie second-level domain names_PHP tutorial

WBOY
Release: 2016-07-13 10:14:33
Original
788 people have browsed it

How to implement cookie-based second-level domain name accessibility in php, cookie second-level domain name

The example in this article describes the method of cookie in PHP to realize the accessible operation of the second-level domain name. Share it with everyone for your reference. The specific method is as follows:

Cookies are very commonly used in some applications. Suppose I have a multi-level domain name that requires that I can access the cookies bound to the primary domain name at the same time. Here is a detailed introduction to how to use setcookie in PHP to achieve a secondary domain name that can successfully access the primary domain name. Cookie value method.

Sometimes the two domain names may be on different servers, but we still hope that the secondary domain name can successfully access the cookies of the primary domain name, and the primary domain name can successfully access the cookies of the secondary domain name, such as sc.jb51.net. I hope to be able to access it. Cookies for www.jb51.net and blog.jb51.net

The following introduces 3 global cookie setting methods that you may often hear.

The first example code is as follows:

Copy code The code is as follows:
setcookie("jb51",$s,time()+3600*12,'/','*. jb51.net');

The number * could not successfully set a cookie

The second example code is as follows:

Copy code The code is as follows:
setcookie("jb51",$s,time()+3600*12,'/','.jb51 .net');

Successfully set a global cookie so that it can be read correctly under ss.jb51.net

The third example code is as follows:

Copy code The code is as follows:
setcookie("jb51",$s,time()+3600*12,'/','jb51. net');

A global cookie is successfully set and can be read correctly under ss.jb51.net

The understanding of this method is that only jb51.net can read it. The test is successful under FireFox and the test is successful under IE. The code is as follows:

Copy code The code is as follows:
setcookie("jb51",$s,time()+3600*12,'/','ss. jb51.net');

Set a cookie that can only be read correctly under the ss.jb51.net domain name. The standard saying on the Internet is .jb51.net, and there is also a * (this statement is completely wrong). Here is a good PHP recommendation The cookie operation class can set cookies, obtain cookies, and delete cookies. The code is as follows:

Copy code The code is as follows:
/** 
* php cookie类 
* class:PHP_COOKIE 
*/ 
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(emptyempty($cname) && isset($this)){  
  $cname=$this->_name;  
}  
 
if(!emptyempty($_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(emptyempty($value)){  
  unset($this->_val[$var]);  

  } 
  function clear()  
  {  
$this->_val=array();  
  } 
  function set()  
  {  
if(emptyempty($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);  
  }  
}  
?>

希望本文所述对大家的PHP程序设计有所帮助。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/909331.htmlTechArticlephp中cookie实现二级域名可访问操作的方法,cookie二级域名 本文实例讲述了php中cookie实现二级域名可访问操作的方法。分享给大家供大家参考...
Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template