您现在的位置:中国下载站学院中心网络编程PHP教程PHP基础教程 → 文章列表

php实现跨域名 Cookie

作者:佚名  来源:不详  发布时间:2007-4-14 11:46:40   

减小字体 增大字体

 
 
  Cookie 真是一个伟大的发明,它允许 web 开发者保留他们的用户的登录状态。然而,当你的站点或网络有一个以上的域名时就会出现问题了。

  在 Cookie 规范上说,一个 cookie 只能用于一个域名,不能够发给其它的域名。因此,如果在浏览器中对一个域名设置了一个 cookie,这个 cookie 对于其它的域名将无效。如果你想让你的用户从你的站点中的其中一个进行登录,同时也可以在其它域名上进行登录,这可真是一个大难题。

  我的解决方案将使用下面的一般框架:

  一个预置的脚本将用来接受通过 GET 或 COOKIE 方式传递过来的 sessionid 号。它将比 COOKIE 优先选择 GET 变量。所以,无论何时需要引用交叉的域名时,我们把 sessionid 做为一个 URL 参数进行发送。修改 Apache 配置,用来实现重写所有的交叉域名的 cookie。这样做的原因一会儿就会清楚了。在任何时候出现一个交叉域名引用时使用变量。

  第一步:创建预置脚本

  将下面的代码加到预置脚本中(或出现在所有脚本之前的函数中)。

  <?php
/* 支持交叉域名cookie...
   如果GET变量已经设置了,并且它与cookie变量不同
   则使用get变量(更新cookie) */
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS;
if (isset($sessionid) && isset($HTTP_GET_VARS['sessionid']) && ($HTTP_COOKIE_VARS['sessionid'] != $HTTP_GET_VARS['sessionid'])) {
   SetCookie('sessionid', $HTTP_GET_VARS['sessionid'], 0, '/', '');
   $HTTP_COOKIE_VARS['sessionid'] = $HTTP_GET_VARS['sessionid'];
   $sessionid = $HTTP_GET_VARS['sessionid'];
}
?>

  一旦这个代码运行之后,一个全局的 'sessionid' 变量将可以用于脚本。它将保存着用户的 cookie 中的 sessionid 值,或者是通过 GET 请求发来的 sessionid 值。

  第二步:为所有的交叉域名引用使用变量

  创建一个全局的配置文件,用于存放可以进行切换的域名的基本引用形式。例如,如果我们拥有 domain1.com 和 domain2.com,则如下设置:

  <?php
$domains['domain1'] = "http://www.domain1.com/-$sessionid-";
$domains['domain2'] = "http://www.domain2.com/-$sessionid-";
?>


在百度中搜索更多php实现跨域名 Cookie相关网页 转贴于:中国下载站

  • 上一篇文章:PHP 同 UML 类图
  • 下一篇文章:PHP 如何调用 JAVA 类库
  • 阅读统计:[]
  • 中国下载站】【设为主页】【收藏本页】【打印本文】【回到顶部】【关闭此页

    相关文章
    文章评论(评论内容只代表网友观点,与本站立场无关!)

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

             (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码


    设为首页 - 关于我们 - 广告服务 - 网站地图 - 加入收藏 - 网站声明 - 网站帮助 - 友情链接

    • Copyright (C) 2006-2008 www.cndownz.com All Rights Reserved.
      中国下载站 版权所有. 粤ICP备05141802号. 对本站有任何建议、意见或投诉,请来信:cndownzcom@yahoo.com.cn.
      喜欢中国下载站(cndownz.com),请把中国下载站(cndownz.com)告诉你QQ上的5位好友,多谢支持!