隐藏帖子输入,还是变量?

时间:2010-02-22 01:15:31

标签: design-patterns

假设您正在制作博客应用程序,并且您正在尝试决定如何为特定帖子构建评论表单。你能

吗?
  1. blog_post_id作为隐藏表单字段放在评论表单中,或者
  2. 将表单操作设置为post_comment?blog_post_id=<id>,然后从GET变量中获取它?
  3. 为什么?


    我的2美分:

    如果您将其置于POST中,那么当您尝试处理表单时,所有变量都处于一致的位置。但是,我发现blog_post_id通常会在URL中,因此您需要发送一些额外的不需要的数据(并且必须完成打印隐藏字段的工作)。

2 个答案:

答案 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的那个选项,我允许用户篡改我的评论表格,如果您不注意那么这个评论表单很糟糕,有时可能会产生安全问题。