【发布时间】:2012-06-15 08:14:42
【问题描述】:
我正在寻找在重定向后向页面提供成功消息的最佳方式。我认为表单提交后重定向是防止表单多次提交的最佳方法。
以下是我想到的一些可能性。您认为其中最好的部分是什么?为什么或者您还有其他可能性?
- 将消息保存在会话中并从目标页面上读取
- 为新页面提供一些 GET 参数,例如
header('Location: index.php?success='.urlencode($message)); -
提供比
Location更多的标头并像这样在目标页面上阅读它们header('Location: index.php'); header('X-Success-Message: ' . urlencode($message));
【问题讨论】:
-
在我的代码中,我使用会话来传递此类消息。唯一要记住的是在阅读完这些消息后从会话中删除它们。
-
在会话中存储可能是最整洁的。
-
我在这里提供了一个 PHP 等效的 ASP.NET MVC TempData stackoverflow.com/questions/7514172/…。
-
如果您使用的是 ZF,flash messenger 是一个很好的解决方案。
-
@JA:我知道会话方法主要来自 ZF。这种方法的最大问题是单个消息的生命周期。在极少数情况下,会话消息可能会保留在会话中而不会被删除。例如,使用标头方法,消息具有固定的请求生命周期。