gpt4 book ai didi

php - 如何最好地在页面之间为用户传递消息

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:25 24 4
gpt4 key购买 nike

所以事件链是:

  1. 用户提交表单。
  2. 在提交过程中,会生成一条消息,例如“您的记录已保存”。
  3. 用户被重定向到一个新页面,比如搜索结果。
  4. 新页面需要显示消息。

那么,问题是如何从第2步到第3步获取消息呢?这只是一个简单的示例……还有许多其他更复杂的示例。

我正在使用 PHP。

需要:

  • 支持多条消息,需要在接收机器上按要求格式化
  • 可以在同一页面上添加消息(例如在第 4 步中)
  • 从任何函数或对象内部添加的消息

我想到的一些选项:

  • 以数组形式存储在 session 变量中,并在每次显示后清空
  • 作为获取或查询参数传递;可能会很烦人,因为您一直在处理它并且必须记住要得到它;因为它可以变长,它可以很容易地超过查询字符串的最大长度
  • 在每个 session 的基础上存储在数据库中(可能并不总是针对登录用户);这将需要在添加它们的每个页面上进行额外的插入,可能需要多次插入,并且需要在每个页面上进行额外的选择

目前我一直在将 session 中的消息存储在一个数组中,但我想知道是否有更好的方法。我认为上面的其他 2 个选项不是很好。

编辑:我为 session 方法使用了 2 个函数:AddStatusMsg()(向数组添加一个元素)和 DisplayStatusMsg()(返回 HTML 格式的消息并清空数组)。

最佳答案

我建议反对将这些消息存储在数据库或 session 中,原因很简单:选项卡。 (嗯,真的,HTTP 的无状态性质。)

想象一个人,他打开了您网站不同部分的多个选项卡。此人执行某些操作并在加载时切换到另一个选项卡并单击链接。如果您将消息存储在 session /数据库中,并且切换到的选项卡是一个也可以显示这些消息的页面,则用户现在已经进入了竞争条件,根据服务器首先响应哪个请求,消息可能显示在他们不想要的地方。

现在,在某些情况下这可能并不重要,但在某些情况下也可能会非常困惑。

将消息放入请求中并不一定像最初看起来那么糟糕。也许您可以使用数字(或者,为了混淆,哈希)ID 将所有要显示在数据库中的消息存储起来,并在查询字符串中传递一个 ID 列表。这样可以使查询字符串简短,您所要做的就是跟踪代码中的 ID 对应于什么消息。

关于php - 如何最好地在页面之间为用户传递消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/304139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com