Cookie与基于会话的Flash消息

Mik*_*rko 11 php cookies cakephp session-variables

我在CakePHP中找到的一个很好的功能是能够设置flash消息,比如说某些save脚本,然后在下一页显示该消息.像Post updated,或者Error - no file found.

Cake所做的就是这个session对象.我试图避免像瘟疫这样的会议,因为他们对可扩展性的要求很高.我是否可以简单地将Flash消息存储在cookie(客户端)中,然后在下一页显示后删除该cookie?这种方法的优点/缺点是什么 - 或者更简单地说,为什么Cake使用session(我假设这与_SESSION集合有关).

干杯!

ps在我的实现中,我也使用setTimeoutjavascript中的命令淡出.我发现这是结束整个过程的好方法.

Iva*_*van 5

cookie 的问题是用户可能会禁用此功能。如果是这样,您的即时消息将不会显示。CakePHP 尝试足够通用并使用会话存储。

您有 3 个选择:

  1. Session:最常用的方法。它可以在任何客户端计算机上运行,​​但正如您所说,它可能会导致某些服务器配置出现问题。
  2. Cookies:一般来说这是一个不错的选择,但用户可能会阻止此机制。仅当您的应用程序要求包括需要 cookie 时才推荐。
  3. 数据库:通用解决方案。问题是它需要访问数据库(速度慢)。ID 应与 URL(GET 方法)一起传递,以便应用程序知道哪个数据库寄存器对应于此访问。

在我的应用程序中,我结合使用了第二种和第三种方法:我测试 cookie,如果它们可用,我就使用它们。如果没有,我使用数据库访问,但我总是缓存数据库访问,以免对每条消息查询多次。

  • 如果cookie被禁用,会话真的能工作吗?会话不依赖cookie吗?(如果您还没有启用PHPSESSID) (5认同)
  • 正如 @David 所说,服务器通过在用户的计算机上存储 cookie,通过多个请求来识别用户。 (3认同)