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 clearstatcache()函数详解
Mar 02 PHP
百度ping方法使用示例 自动ping百度
Jan 26 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
Aug 21 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
php使用for语句输出三角形的方法
Jun 09 PHP
php中删除、清空session的方式总结
Oct 09 PHP
变量在 PHP7 内部的实现(一)
Dec 21 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
Mar 22 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
PHP实现简单计算器小程序
Aug 28 PHP
stripos函数知识点实例分享
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不用正则验证真假身份证
2013/11/06 PHP
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
jquery 设置元素相对于另一个元素的top值(实例代码)
2013/11/06 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
js实现移动端轮播图
2020/12/21 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
python使用cookie库操保存cookie详解
2014/03/03 Python
python实现给数组按片赋值的方法
2015/07/28 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
python简单实现插入排序实例代码
2020/12/16 Python
有原因的手表:Flex Watches
2019/03/23 全球购物
高中生的学习总结自我鉴定
2013/10/26 职场文书
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
我为自己代言广告词
2014/03/18 职场文书
考核工作实施方案
2014/03/30 职场文书
2014旅游局党组书记党建工作汇报材料
2014/11/02 职场文书
2014年物流工作总结
2014/11/25 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
导游词之桂林
2019/08/20 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
基于JavaScript实现省市联动效果
2021/06/22 Javascript