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 相关文章推荐
xml+php动态载入与分页
Oct 09 PHP
最简单的PHP程序--记数器
Oct 09 PHP
PHP源代码数组统计count分析
Aug 02 PHP
PHP 之Section与Cookie使用总结
Sep 14 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
php 伪静态之IIS篇
Jun 02 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
Apr 21 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
CI框架实现框架前后端分离的方法详解
Dec 30 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 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
Zend Guard一些常见问题解答
2008/09/11 PHP
php使用异或实现的加密解密实例
2013/09/04 PHP
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
一个tab标签切换效果代码
2009/03/27 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
JavaScript知识点整理
2015/12/09 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
python3简单实现微信爬虫
2015/04/09 Python
python列出目录下指定文件与子目录的方法
2015/07/03 Python
python 写入csv乱码问题解决方法
2016/10/23 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
python实现列表的排序方法分享
2019/07/01 Python
python 五子棋如何获得鼠标点击坐标
2019/11/04 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
Django数据库操作之save与update的使用
2020/04/01 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
Java中会存在内存泄漏吗,请简单描述
2016/12/22 面试题
三分钟演讲稿事例
2014/03/03 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
工程合作意向书范本
2015/05/09 职场文书