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 相关文章推荐
Smarty结合Ajax实现无刷新留言本实例
Jan 02 PHP
php session处理的定制
Mar 16 PHP
PHP 采集心得技巧
May 15 PHP
PHP开发不能违背的安全规则 过滤用户输入
May 01 PHP
php二分查找二种实现示例
Mar 12 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
Nov 12 PHP
php计算数组相同值出现次数的代码(array_count_values)
Jan 20 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
Json_encode防止汉字转义成unicode的方法
Feb 25 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
Aug 12 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
搜索附近的人PHP实现代码
Feb 11 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 截取中英文混合字符串的方法
2018/05/31 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
第一章之初识Bootstrap
2016/04/25 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
2018/06/28 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
python模块之re正则表达式详解
2017/02/03 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
Python while循环使用else语句代码实例
2020/02/07 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
Python多分支if语句的使用
2020/09/03 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
Python实现石头剪刀布游戏
2021/01/20 Python
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
一份软件工程师的面试试题
2016/02/01 面试题
工程造价与管理专业应届生求职信
2013/11/23 职场文书
优秀的自荐信要注意哪些
2014/01/03 职场文书
企业文化演讲稿
2014/05/20 职场文书
2014年公务员工作总结
2014/11/18 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书