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递归实现无限分类生成下拉列表的函数
Aug 08 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
解析csv数据导入mysql的方法
Jul 01 PHP
php的sprintf函数的用法 控制浮点数格式
Feb 14 PHP
PHP header()函数常用方法总结
Apr 11 PHP
PHP实现简单汉字验证码
Jul 28 PHP
php生成验证码,缩略图及水印图的类分享
Apr 07 PHP
php生成txt文件实例代码介绍
Apr 28 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
Feb 15 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
PHP实现的一致性Hash算法详解【分布式算法】
Mar 31 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
用PHP生成静态HTML速度快类库
2007/03/18 PHP
php 代码优化的42条建议 推荐
2009/09/25 PHP
深入了解PHP类Class的概念
2012/06/14 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
JavaScript静态的动态
2006/09/18 Javascript
$()JS小技巧
2007/07/21 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
2012/01/13 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
在python中安装basemap的教程
2018/09/20 Python
python try except 捕获所有异常的实例
2018/10/18 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
给排水专业应届生求职信
2013/10/12 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
商场消防安全责任书
2014/07/29 职场文书
电大奖学金获奖感言
2014/08/14 职场文书
2014年度工作总结报告
2014/12/15 职场文书
资料员岗位职责
2015/02/10 职场文书
餐馆开业致辞
2015/08/01 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书
php png失真的原因及解决办法
2021/11/17 PHP
mysql自增长id用完了该怎么办
2022/02/12 MySQL