Design patterns 隐藏post输入,还是获取变量?
假设您正在制作一个博客应用程序,并且您正在尝试决定如何为特定帖子构建评论表单。你愿意吗Design patterns 隐藏post输入,还是获取变量?,design-patterns,Design Patterns,假设您正在制作一个博客应用程序,并且您正在尝试决定如何为特定帖子构建评论表单。你愿意吗 将blog\u post\u id作为评论表单中的隐藏表单字段,或者 将表单操作设置为post\u comment?blog\u post\u id=,然后从GET变量获取它 为什么? 我的2美分: 如果您将其放入POST,那么当您试图处理表单时,所有变量都位于一致的位置。但是,我发现通常blog\u post\u id无论如何都会出现在URL中,因此您会发送一点额外的不需要的数据(并且必须完成打印隐藏字段
blog\u post\u id
作为评论表单中的隐藏表单字段,或者post\u comment?blog\u post\u id=
,然后从GET
变量获取它李>
为什么?
我的2美分:
如果您将其放入POST,那么当您试图处理表单时,所有变量都位于一致的位置。但是,我发现通常
blog\u post\u id
无论如何都会出现在URL中,因此您会发送一点额外的不需要的数据(并且必须完成打印隐藏字段的工作)。我会选择第一个选项,这似乎更好。如果您使用第二个选项,即带有GET的选项,我允许用户篡改我的评论表单,这是不好的,如果您不注意,有时可能会造成安全问题。我将选择第一个选项,这似乎更好。如果您使用第二个选项,即带有GET的选项,我允许用户篡改我的评论表单,这是不好的,如果您不注意,有时会造成安全问题。从技术上讲,这两个选项之间并没有太大的区别。就我个人而言,我会选择隐藏的POST
,因为URL看起来更干净,而且您不必担心URL转义值*
*
对于数字id来说,这应该不是问题,但是哦
重新编辑: 然而,我发现无论怎样,
blog\u post\u id
通常都会出现在URL中
这完全取决于你。如果你想把它放在那里,你可以把它放在那里,但你不需要
…并且必须完成打印隐藏字段的工作
再说一次,真的没有太大区别
<form action="/post_comment?post_id=<?php echo $id; ?>">
从技术上讲,这两个选项之间并没有太大区别。就我个人而言,我会选择隐藏的POST
,因为URL看起来更干净,而且您不必担心URL转义值*
*
对于数字id来说,这应该不是问题,但是哦
重新编辑:
然而,我发现无论怎样,blog\u post\u id
通常都会出现在URL中
这完全取决于你。如果你想把它放在那里,你可以把它放在那里,但你不需要
…并且必须完成打印隐藏字段的工作
再说一次,真的没有太大区别
<form action="/post_comment?post_id=<?php echo $id; ?>">
注释表单中的隐藏字段也可能被欺骗。就这个决定而言,“安全性”不是问题。同意Anon。无论您允许从用户端发送什么,实际上都可以由用户修改。这也是为什么DRM到目前为止还不起作用的原因…@Anon:我最初说“我会选择第一个似乎更好的选项。”隐藏方法比直接获取方式更好,但它也不完美,我从来没有说过,但因为我只有两个选项,所以我不得不选择一个选项。希望你能理解。你说“似乎更好”,但你没有提供任何有效的理由。如果你只是在无中生有地提出意见,那么就说你是在无中生有地提出意见,而不是试图用不正确的东西来证明它的合理性。评论表单中的隐藏字段也可能被欺骗。就这个决定而言,“安全性”不是问题。同意Anon。无论您允许从用户端发送什么,实际上都可以由用户修改。这也是为什么DRM到目前为止还不起作用的原因…@Anon:我最初说“我会选择第一个似乎更好的选项。”隐藏方法比直接获取方式更好,但它也不完美,我从来没有说过,但因为我只有两个选项,所以我不得不选择一个选项。希望你能理解。你说“似乎更好”,但你没有提供任何有效的理由。如果你只是在无中生有地提出一个意见,那么就说你是在无中生有地提出意见,而不是试图用不正确的东西来证明它的合理性。除了大多数时候它会出现在URL中之外,因为您通常希望重定向回该博客帖子,以便查看您的评论。@标记重定向回帖子并不意味着您必须在/post\u comment
的URL中添加任何内容。嗯……不,不一定。我想你也可以把它塞进帖子里??但是当你想查看一个页面时,通常把它放在URL中是有意义的,不是吗?@Marc好的,是的,要查看一个页面(获取请求),你需要在URL中包含一些参数,除非你想将RESTfusion放在头上,并使每个页面都成为一个POST页面。至于你的问题,我更喜欢使用尽可能干净的URL。你征求意见,那是我的。你可以对这两种解决方案进行永恒的辩论,因为它们同样有效。如果你已经有了偏好,就去吧!:o) 除非大多数时候它都会出现在URL中,因为您通常希望重定向回该博客帖子,以便查看您的评论。@标记重定向回帖子并不意味着您必须在URL中添加任何内容以/post\u comment
。嗯……不,不一定。我想你也可以把它塞进帖子里??但是当你想查看一个页面时,通常把它放在URL中是有意义的,不是吗?@Marc好的,是的,要查看一个页面(获取请求),你需要在URL中包含一些参数,除非你想将RESTfusion放在头上,并使每个页面都成为一个POST页面。至于你的问题,我更喜欢使用尽可能干净的URL。你征求意见,那是我的。你可以对这两种解决方案进行永恒的辩论,因为它们同样有效。如果你已经有了偏好,就去吧!:o)