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 相关文章推荐
PHP4 与 MySQL 交互使用
Oct 09 PHP
我的群发邮件程序
Oct 09 PHP
php二维数组转成字符串示例
Feb 17 PHP
PHP连接sql server 2005环境配置及问题解决
Aug 08 PHP
PHP中使用sleep函数实现定时任务实例分享
Aug 21 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
双冒号 ::在PHP中的使用情况
Nov 05 PHP
php添加数据到xml文件的简单例子
Sep 08 PHP
微信支付PHP SDK ―― 公众号支付代码详解
Sep 13 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
laravel model 两表联查示例
Oct 24 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将字符串转换成16进制的方法
2015/03/17 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
InnerHtml和InnerText的区别分析
2009/03/13 Javascript
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
对vux点击事件的优化详解
2018/08/28 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
浅谈python脚本设置运行参数的方法
2018/12/03 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
物业保安员岗位职责制度
2014/01/30 职场文书
廉洁自律承诺书
2014/03/27 职场文书
公司请假条格式
2014/04/11 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
小时代观后感
2015/06/10 职场文书
工资证明格式模板
2015/06/12 职场文书
mysql left join快速转inner join的过程
2021/06/30 MySQL
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL