假设您正在制作博客应用程序,并且您正在尝试决定如何为特定帖子构建评论表单。你能
吗?blog_post_id
作为隐藏表单字段放在评论表单中,或者post_comment?blog_post_id=<id>
,然后从GET
变量中获取它? 为什么?
我的2美分:
如果您将其置于POST中,那么当您尝试处理表单时,所有变量都处于一致的位置。但是,我发现blog_post_id
通常会在URL中,因此您需要发送一些额外的不需要的数据(并且必须完成打印隐藏字段的工作)。
答案 0 :(得分:3)
从技术上讲,两种选择之间确实存在很大差异。就个人而言,我会使用隐藏的POST
,因为网址看起来更干净,您不必担心网址转义价值*
。
*
对于数字ID来说,这应该不是问题,但是很好......
重新编辑:
但是,我发现
blog_post_id
通常会在网址中...
这完全取决于你。如果你想要它,你可以把它放在那里,但你不需要。
......并且必须完成打印隐藏区域的工作。
同样,确实没有太大的区别......
<form action="/post_comment?post_id=<?php echo $id; ?>">
VS
<form action="/post_comment">
<input type="hidden" name="post_id" value="<?php echo $id; ?>" />
隐藏的输入提供了更好的关注点分离(在微观范围内)并且恕我直言更易读,而GET
变量是一行代码...请选择。 :)
答案 1 :(得分:-2)
我会选择第一个选项,这似乎更好。如果您使用第二个选项,即使用GET的那个选项,我允许用户篡改我的评论表格,如果您不注意那么这个评论表单很糟糕,有时可能会产生安全问题。