gcollar 2014-12-16 13:49:38 3659次浏览 5条回复 0 0 0
$value = "1234567890";
$cookie = new CHttpCookie("data1", $value);
$cookie -> domain = ".abc.com";
$cookie -> path = "/";
$cookie -> expire = time() + 3600;
Yii::app() -> request -> cookies["data1"] = $cookie;

我在a.abc.com服务器上使用上面的代码生成了一个cookie,在本服务器上读取这个cookie没有问题,但是在b.abc.com服务器上读取的时候,发现返回的结果中包含了验证字符串,如下所示: a.abc.com返回的结果

1234567890

b.abc.com返回的结果

76657fa42121a296eb44cb28fe07d43c8a69d011s:10:"1234567890";

请问,是什么原因导致这种返回结果的差异呢?如何解决?谢谢!

  • 回复于 2014-12-17 10:22 举报

    上面的对我很有用,谢了

  • 回复于 2014-12-17 10:23 举报

    这个问题你知道怎么回事吗?

  • 回复于 2014-12-17 10:31 举报

    是不是一个开启了cookie验证一个没开启呢?

  • 回复于 2014-12-17 12:51 举报

    76657fa42121a296eb44cb28fe07d43c8a69d011s:10:"1234567890";

    76657fa42121a296eb44cb28fe07d43c8a69d011 这个看起来像 sha1 的结果

    s:10:"1234567890" 这个是 php 序列化的结果,感觉你 a 和 b 上读取的时候代码不一致,或者 cookie 的配置不一样,把两段读取cookie 的代码贴出来看下,

  • 回复于 2015-01-20 10:27 举报

    重写了一个CookieCollection才解决了这个问题,framework中的CookieCollection对于不同的服务器会返回不同的验证码,没有办法做到服务器间共用cookie,也可能是我哪里没设置对,没办法只好重写了一个,现在问题解决了,谢谢各位

您需要登录后才可以回复。登录 | 立即注册