在表单成功页面上显示消息

时间:2009-01-19 19:41:30

标签: language-agnostic

假设您有网页A,它是网络应用的“主页”页面。假设有第二页B包含一个表格。成功处理表单后,用户将返回到页面A.如果您需要显示上一个操作的成功消息(成功提交表单),那么获取该消息的最佳方式是什么?

我把它缩小到这个:

  1. 将消息密钥传递给页面A.然后,页面A将使用该密钥从某处获取消息。

  2. 将消息传递给第A页。但是,这似乎打开了XSS的网站,什么不是。

  3. 处理表单时,会在重定向到页面A之前将会话范围中的消息存储起来。然后,页面A可以检索&从会话中删除该消息并将其显示在屏幕上。

  4. 我错过了什么吗?完成此任务的首选方法是什么?

4 个答案:

答案 0 :(得分:2)

我绝不会将会话用于此类任务。这是不负责任的,破坏了逻辑的流动。相反,您可以拥有预先确定的错误列表,并通过查询参数传递错误代码。如果你真的需要每次我建议通过GET或POST发送新的自定义数据。

答案 1 :(得分:1)

由于所有相同的原因,

完全同意d03boy。在用户开始打开多个窗口的那一刻,存储特定于会话中特定视图的数据会严重中断。

就个人而言,我总是使用你在这里描述的方法1。

答案 2 :(得分:0)

我通常使用方法3.如果页面想要在重定向后显示消息,则会设置会话变量。然后代码在我的基类中(为每个页面请求执行)检查是否有要显示的消息,显示它并清空消息会话变量。

答案 3 :(得分:0)

我同意d03boy和pilif:方法3不能很好地使用会话,并且在几个窗口的情况下会被弄乱,正如你所说,方法2打开了XSS。

将不同的消息存储在文件或数据库中,并将密钥传递给脚本。如果您需要自定义消息,请通过发布请求传递数据(并对其进行验证以防止XSS)并使用模式替换消息中的值。

相关问题