php中cookie实现二级域名可访问操作的方法


Posted in PHP onNovember 11, 2014

本文实例讲述了php中cookie实现二级域名可访问操作的方法。分享给大家供大家参考。具体方法如下:

cookie在一些应用中很常用,假设我有一个多级域名要求可以同时访问主域名绑定的cookie,下面就来给大家具体介绍在php中利用setcookie实现二级域名可以成功访问主域名cookie值的方法.

有时候两个域名可能在不同的服务器上,但是我们依然希望二级域名能够顺利访问主域名的cookie,主域名可以顺利访问二级域名的cookie,比如sc.3water.com 希望能访问 3water.com 和 blog.3water.com 的 cookie

下面介绍3种你可能常听到的全局cookie设置方式.

第一种实例代码如下:

setcookie("3water",$s,time()+3600*12,'/','*.3water.com');

*号无法成功设置一个cookie

第二种实例代码如下:

setcookie("3water",$s,time()+3600*12,'/','.3water.com');

成功设置一个全局cookie,这样在ss.3water.com下也能正确读取

第三种实例代码如下:

setcookie("3water",$s,time()+3600*12,'/','3water.com');

成功设置一个全局cookie,在ss.3water.com下也能正确读取

这种方式的理解是仅仅3water.com能够读取,在FireFox下测试成功,IE下测试成功,代码如下:

setcookie("3water",$s,time()+3600*12,'/','ss.3water.com');

设置一个仅仅在ss.3water.com域名下可以正确读取的cookie,网络上标准的说法为.3water.com这样,也有*的说法(该说法完全错误).下面推荐一个不错的php cookie操作的类,可以设置cookie、获取cookie、删除cookie,代码如下:

<?php   

/**  

* 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程序设计有所帮助。

PHP 相关文章推荐
php中常用字符串处理代码片段整理
Nov 07 PHP
php&amp;mysql 日期操作小记
Feb 27 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
May 15 PHP
php自定义hash函数实例
May 05 PHP
ThinkPHP安装和设置
Jul 27 PHP
php封装好的人民币数值转中文大写类
Dec 20 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 PHP
php metaphone()函数的定义和用法
May 15 PHP
Yii遍历行下每列数据的方法
Oct 17 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
Jan 13 PHP
PHP实现微信申请退款功能
Oct 01 PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 PHP
php实现的css文件背景图片下载器代码
Nov 11 #PHP
PHP获取数组中重复最多的元素的实现方法
Nov 11 #PHP
利用PHP函数计算中英文字符串长度的方法
Nov 11 #PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 #PHP
PHP基于imap获取邮件实例
Nov 11 #PHP
php无限极分类递归排序实现方法
Nov 11 #PHP
php实现压缩多个CSS与JS文件的方法
Nov 11 #PHP
You might like
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
2019/05/29 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
vue中关闭eslint的方法分析
2018/08/04 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
Python列表切片用法示例
2017/04/19 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
使用Python实现企业微信的自动打卡功能
2019/04/30 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
Python线程指南分享
2019/11/19 Python
python之语音识别speech模块
2020/09/09 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
2020/12/14 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
医学实习生自我鉴定
2013/12/12 职场文书
2014中考励志标语
2014/06/05 职场文书
汽车转让协议书范本
2014/12/07 职场文书