PHP Cookie正在丢失

PHP Cookie正在丢失,php,wordpress,cookies,Php,Wordpress,Cookies,我有一个奇怪的问题,我的饼干以一种奇怪的方式丢失了。我在wordpress上,当我点击页面时,它似乎很好地保持了这个值,但当我在页面上插入帖子时,它会丢失cookie 最奇怪的是,它第一次并没有松开它,但是如果我连续创建两个帖子,那么它就会松开它 我读了很多关于复习的书,我把它们都拿了出来,现在仍然如此。我还了解到wordpress不喜欢没有指定域的Cookie,因此我的Cookie如下所示: setcookie("auth", $cyph, time()+60*60*24*60, '/', '

我有一个奇怪的问题,我的饼干以一种奇怪的方式丢失了。我在wordpress上,当我点击页面时,它似乎很好地保持了这个值,但当我在页面上插入帖子时,它会丢失cookie

最奇怪的是,它第一次并没有松开它,但是如果我连续创建两个帖子,那么它就会松开它

我读了很多关于复习的书,我把它们都拿了出来,现在仍然如此。我还了解到wordpress不喜欢没有指定域的Cookie,因此我的Cookie如下所示:

setcookie("auth", $cyph, time()+60*60*24*60, '/', '.domain.com');
其中,
$cyph
是一个序列化数组(
base64_encode(serialize($cyph));
)。就像我说的,在我以某种方式与wordpress交互之前,它很好地保持了价值

有什么想法吗

其中,
$cyph
是一个序列化数组(
base64_encode(serialize($cyph));

哎呀! 从不向最终用户公开序列化数据。请参考,从第28页开始。以这样一种方式操作序列化数据是可能的,即设计不良的类可以允许执行任意代码

看起来您正在尝试存储身份验证令牌。请存储适当的哈希值



关于实际的cookie设置程序,您使用的浏览器是什么?现代浏览器能够使用开发人员工具检查HTTP头中的请求和响应。使用这些工具之一,应该很容易看到cookie是否设置正确。如果您使用Firefox,请安装Firebug。如果使用Chrome,请使用扳手菜单=>Tools=>Developer Tools

我想这已经在下面的链接中得到了回答。你确定你不只是在两篇文章之间花了两个月的时间吗?:)它存储为散列,为什么将加密数组显示为序列化字符串会有问题?在firebug中,它显示cookie只是。。。散列的密钥和值被加密了。。。然后整个数组被序列化了,怎么会有人搞砸了呢?感谢您的链接,我将阅读。请阅读我链接的文档,其中列出了不应向用户公开序列化数据的许多原因。问题不在于数据,而在于序列化。关于cookie,你能用脚本提供并由Firebug公开的Set cookie头的副本/粘贴来编辑你的原始问题吗?谢谢你在这方面的帮助,Charles,我马上就做。重新使用hash和serialize,我的目标是在cookie中存储一个信息(或对象)数组,这有很多明显的好处。做那种事情最好的方法是什么(我不在乎方法,只在乎结果)。非常感谢!如果您真的必须这样做,而不是将信息存储在数据库中,并简单地为用户提供一个唯一的标识符,供您以后查找,那么还有一些其他选项。考虑一下,你可以通过哈希。它将返回
setcookie
将正确编码的查询字符串。以后可以使用将数据作为散列返回。这只适用于嵌套最少的相对简单的阵列。