Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic 在表单成功页面上显示消息_Language Agnostic - Fatal编程技术网

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

Language agnostic 在表单成功页面上显示消息,language-agnostic,Language Agnostic,假设您有一个页面,它是web应用程序的“主页”。假设第二页B包含一个表单。成功处理表单后,用户将被引导回A页。如果您需要显示上一个操作的成功消息(成功提交表单),那么获取该消息的最佳方式是什么 我把范围缩小到: 将消息密钥传递给页面a。然后页面a将使用该密钥从某处获取消息 将消息传递到页面A。然而,这似乎为XSS打开了站点 处理表单时,在重定向到页面A之前将消息存储在会话范围内。然后页面A可以从会话中检索和删除消息,并将其显示在屏幕上 我错过什么了吗?完成此任务的首选方式是什么 我通常使用方法3

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

我把范围缩小到:

  • 将消息密钥传递给页面a。然后页面a将使用该密钥从某处获取消息

  • 将消息传递到页面A。然而,这似乎为XSS打开了站点

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


  • 我错过什么了吗?完成此任务的首选方式是什么

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

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

    出于同样的原因,我完全同意d03boy的观点。当用户开始打开多个窗口时,在会话中存储特定于某个视图的数据就会严重中断


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

    我同意d03boy和pilif的观点:方法3对会话的使用不好,如果有多个窗口,就会出现混乱,正如您所说,方法2会向XSS打开


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

    每次成功提交后,用户都会被重定向,因此打开多个窗口不一定是问题。但是,跨多个服务器管理会话可能更为重要。这怎么会是不负责任的呢?它如何破坏逻辑,而不是用url上传递的密钥检索消息??如果用户直接进入该页面,消息很可能仍然存在。我不确定这个页面是什么,所以很难说你会遇到什么问题。如果用户没有完成对页面的重定向,消息仍然存在的唯一方法就是。假设web服务器在多个web服务器(如果存在)之间正确地分配会话状态