【问题标题】:How to save multiple cookies?如何保存多个cookie?
【发布时间】:2019-03-20 10:46:28
【问题描述】:

我正在创建一个网站,用户将在这里完成一些任务。现在我想要的是,如果用户“X”来了,应该在浏览器中保存一个名为“X”的 cookie。如果用户“Y”来了,那么“Y”用户的 cookie 也应该被保存。但不应删除或覆盖“X”的 cookie。 现在假设下次“X”再次访问该网站,“X”cookie 中的数据应该更新,“Y”也应该这样做。 如果可能的话,请告诉我确切的方法。 谢谢。

【问题讨论】:

  • 听起来好像对 Cookie 的工作原理存在严重误解。它们存储在浏览器中,通常用于识别登录的用户。大多数人期望用户和浏览器之间大致一一对应。您真的打算在同一个浏览器中存储多个用户的用户特定数据吗?您打算如何区分用户?
  • 其实我已经创建了一个游戏。假设“X”玩了游戏并赢了 10 次,这个信息应该保存为 cookie,现在假设“Y”来了并赢了 5 次。 'y' 的 Cookie 也应该被保存。现在下次当“X”上场时,他应该能够看到他最后的胜利。
  • 这并没有解决我在之前评论中提出的任何观点。
  • 你有解决办法吗?
  • 没有。我没有解决办法。你可以这么说,因为我还没有发布答案。这是因为您的真正问题尚不清楚。我可以给你一个字面上的答案(就像dearsina已经有了,你似乎也不明白)但我怀疑它不会解决真正的问题。这就是为什么我发表评论要求您澄清您的问题。

标签: php session cookies


【解决方案1】:

您可以创建任何您想要的 cookie。将 cookie 视为存储在用户计算机而不是您的服务器上的 $_SESSION 值。 Cookie 可以是复杂的数组,因此您可以为每个用户存储一个数组。

请记住,计算机的任何用户都可以看到任何 cookie 中的内容,因此永远不要保存任何机密信息,例如密码或 API 密钥。

数组作为 cookie

您可以使用json_encode() 存储arrays as cookies,如下所示:

setcookie('your_cookie_name', json_encode($array), time()+3600);

进一步阅读

查看setcookie() 以获取有关如何在 PHP 中使用它的更多文档。

我做对了吗?

cookies 最常见的用途是识别一个用户,并省去他们识别自己的时间。在他们自己的机器(而不是您自己的服务器)上存储大量关于或为大量用户的信息没有多大意义,因为可以轻松清除 cookie。

您最好将所有内容存储在自己的服务器上,并且只使用 cookie 来识别当前用户。

【讨论】:

  • 现在我只想保存一个信息,但要保存许多用户。如何使用 cookie?
  • @raj,只需将 cookie 名称更改为某种用户标识符。然后,您可以为每个用户存储尽可能多的数据。不过这是个坏主意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 2018-12-01
  • 2011-12-30
相关资源
最近更新 更多