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 相关文章推荐
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
Jul 01 PHP
php支付宝接口用法分析
Jan 04 PHP
列举PHP的Yii 2框架的开发优势
Jul 03 PHP
PHP获取指定月份第一天和最后一天的方法
Jul 18 PHP
php错误日志简单配置方法
Jul 11 PHP
php is_executable判断给定文件名是否可执行实例
Sep 26 PHP
php读取和保存base64编码的图片内容
Apr 22 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
PHP+jQuery实现即点即改功能示例
Feb 21 PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
Yii2框架控制器、路由、Url生成操作示例
May 27 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
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
PHP正则验证Email的方法
2015/06/15 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
Jquery 数组操作大全个人总结
2013/11/13 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
简单谈谈关于Angular Cli打包的事
2017/09/05 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
Vue动态组件和异步组件原理详解
2019/05/06 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
Python的Tornado框架异步编程入门实例
2015/04/24 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
python+selenium+autoit实现文件上传功能
2017/08/23 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
python适合人工智能的理由和优势
2019/06/28 Python
python写入文件自动换行问题的方法
2019/07/05 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
汇科协同Java笔试题
2012/03/31 面试题
销售自我评价
2013/10/22 职场文书
学校七一活动方案
2014/01/19 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
思想作风建设心得体会
2014/10/22 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
节水倡议书
2015/01/19 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
详解Go与PHP的语法对比
2021/05/29 PHP