注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

php 王建

php之路

 
 
 

日志

 
 

使用PHP实现跨域COOKIE  

2013-01-19 18:18:46|  分类: php类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

浏览器无法实现跨域获取cookie,今天就简单的测试了下。

首先配置了2个虚拟的域名a.dev b.dev

点击查看原图

打开apache配置文件httpd.conf 开启vhosts

点击查看原图

把前面的#号注释掉即可

然后找到httpd_vhosts.conf 文件加入2个虚拟域名

点击查看原图

然后重新启动apache

首先我在a.dev这个域名下面新建一个a.php 文件,用于创建cookiea_getcookie.php 用于获取cookie文件

a.    php代码如下:

1<?php
2ob_start();
3echo 'My name is a.dev';
4echo '<hr>';
5setcookie("test"'my name is A_cookie', time()+3600, "/"".a.dev");  //设置cookie 注意最后的参数我加上了域名dev其中包含了a.dev下面的子域名

然后创建a_getcookie.php 代码如下:

1<?php
2echo '<pre>';
3print_r($_COOKIE);

首先运行下a.php 文件 然后再运行a_getcookie.php 文件结果如下

点击查看原图


接下来我们要跨域进行设置cookie,为了不让上一步骤进行影响,我们在新建一个clear.php文件用来清除a.dev下的cookie代码如下

1<?php
2ob_start();
3setcookie("test"'', time()-3600, "/"".a.dev");

接下来在b.dev这个域名下面创建一个b.php 文件用于跨域设置cookie

代码如下:

<script src="http://www.a.dev/a.php"></script>

然后访问b.php,然后再看下a.dev里有没cookie会发现cookie是空的,

下面我们在a.dev/a.php里面加上这一句

1header("P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR");

会发现cookie成功

问题:ie好像不支持跨域访问,所以必须加上header函数,在火狐 chrome等浏览器正常


  评论这张
 
阅读(5556)| 评论(21)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018