php - 如何保存多个cookie?
问题描述
我正在创建一个用户会来做一些任务的网站。现在我想要的是,如果用户“X”来了,应该在浏览器中保存一个名为“X”的 cookie。如果用户“Y”来了,那么“Y”用户的 cookie 也应该被保存。但不应删除或覆盖“X”的 cookie。现在假设下次“X”再次访问该网站,“X”cookie 中的数据应该更新,“Y”也应该这样做。如果可能的话,请告诉我确切的方法。谢谢。
解决方案
您可以创建任何您想要的 cookie。将 cookie 视为$_SESSION
存储在用户计算机而不是您的服务器上的值。Cookie 可以是复杂的数组,因此您可以为每个用户存储一个数组。
请记住,计算机的任何用户都可以看到任何 cookie 中的内容,因此永远不要保存任何秘密,例如密码或 API 密钥。
数组作为 cookie
您可以使用将数组存储为 cookiejson_encode()
,如下所示:
setcookie('your_cookie_name', json_encode($array), time()+3600);
进一步阅读
查看setcookie()
有关如何在 PHP 中使用它的更多文档。
我在做正确的事吗?
cookie 最常见的用途是识别一个用户,并让他们不必识别自己。在他们自己的机器(而不是您自己的服务器)上存储大量关于或为大量用户的信息没有多大意义,因为可以轻松清除 cookie。
您最好将所有内容存储在自己的服务器上,并且只使用 cookie 来识别当前用户。
推荐阅读
- c# - 如果仅更改名称,如何从方法派生?
- javascript - 为什么我的 BMI 计算器显示错误的 BMI?
- opencv - 使用 OpenCV Orb 的图像对齐不成功
- tensorflow - 是否可以使用 Tensorflow 2.1 训练模型 Tensorflow 对象检测 API?
- node.js - 如何使用 React-Router 和 Express 后端返回有效的 JSON 响应?
- angular - Angular Routing 清除 FormsModule 格式
- javascript - Webpack 防止为某些带有 css 模块的文件发出 css
- jenkins - 安装了带有 Java 8 的 Jenkins 后,我还可以默认更改为 Java 13 吗?
- javascript - cryptojs无法解密多行
- reactjs - MenuItem 链接在下拉菜单上不起作用