|
|
1
7
在会话中存储错误消息时,必须注意,在显示之前,两个请求不会覆盖另一个消息。你必须注意,一个页面,应该显示一个消息,只显示它自己的消息。 当错误发生时,应该显示错误,而不是以前的重定向。在这种情况下,也没有理由重新定向。 |
|
|
2
4
不是一般的。会话数据应该是重要时期的数据,错误通常是单个请求的结果,而细节不需要持久化。 在会话中存储此类数据只是竞赛条件的邀请。 |
|
|
3
2
为什么不给他们分配一个特定的id,比如error\u id=2,然后通过url发送? 或者这对你来说也是不可能的? 也可以通过会话发送错误id。。。 |
|
|
4
1
在会话中存储错误消息并不少见,特别是在可能存在多个重定向的情况下。Zend framework有类似flash messenger的东西,哪一种可以做到这一点。 会话中的任何内容都将保留在会话中,直到您销毁它或会话超时。最好的做法是将错误消息存储在会话中,然后当页面加载需要显示错误消息时,您的代码将从会话中获取消息并在它们存在时显示它们。显示错误消息后,您需要将其从会话中删除,否则每次用户转到此页时,都会看到相同的错误消息一次又一次弹出。 最好的方法是显示和删除。 我相信如果你用这种方法,你就不会遇到任何问题。原因是,如果提交了不正确的表单,则表单中始终会有错误,并且它将始终尝试在会话中存储这些错误消息并相应地显示它们,而不管它们在会话中添加/删除了多少次。我希望这一切都有意义。 另外,当您存储会话错误消息时,您需要智能地存储它们,以便后端知道这些错误消息是为哪个表单存储的。 |
|
|
5
1
关注用户! 您的所有开发工作都希望提供最好的用户体验。 第一个问题是,你为什么需要信息?
容易:可能被更改的错误请求: 如果用户可能更改请求的错误请求,不要将其保存在会话中,而是直接呈现用户可以更正其请求的页面。 困难:成功的请求或不可更改的错误请求: 在这里,您通常希望用户在点击F5或执行类似操作后不能再次执行完全相同的请求,因此您可以重定向用户。在这种情况下,我个人喜欢使用flash消息组件的解决方案(请参见 Symfony Docs 或 Zend Docs 例如)。一般来说,如果应用程序满足以下假设,则此技术不会导致竞争条件:
现在,要最小化错误率,可以执行以下操作:
总结: 如果您有关于HTTP通信的一般良好实践,那么用户是 不可能的 能够搞乱闪光信息。权衡利弊,把重点放在用户,而不是你的实现的复杂性,因为有一些方法来应付这个问题。 |
|
|
6
0
一般来说: 尽量多放在客户端(javascript和cookies),尽量少存储在服务器端。 这包括SESSION变量,在最好的情况下,它应该只包含用户id。 如果消息在重定向之后,则可以添加一个请求变量,该变量可以对消息进行索引并以这种方式显示消息。 |
|
|
7
-1
您可以在URL中传递错误代码,然后使用该代码查找错误,而不是存储在会话中。我为这类事情提供了用户裸体异常类:
那么你的重定向url将是
你不需要使用
|