通过表单发送id

时间:2012-09-06 11:24:21

标签: php html

我创建了一个论坛,人们可以在这里发送问题并获得这里的答案。因此,当用户以我创建的形式回答问题时,我将问题的ID发送到另一个php文件,将答案存储到正确的位置,如下所示。

<input type="text" value="<?php echo $id_of_question;?>" style="display:none;"/>

但我认为这不是更安全的方法,或者应该有更好的方法来做到这一点。所以,我的问题是我的方法是好还是安全?我怎么能做得更好?我觉得我上面做的是懒惰的方式:) 感谢

6 个答案:

答案 0 :(得分:4)

它没有任何问题,但请改用hidden

<input type="hidden" name="question_id" value="<?php echo $id_of_question;?>" />

答案 1 :(得分:3)

input type="hidden"会更有意义,但就安全性而言,这没有任何实际区别。

虽然用户可以更改字段的值,但您只需确保提交的值是合理的。

即。在最基本的层面上,它是存在的问题。

如果你有更复杂的要求(例如某些问题可能会被关闭而不接受新答案),那么你需要改变问题是否也是开放的。

无法强制浏览器提交特定值。必须在服务器上强制执行所有安全性。

答案 2 :(得分:1)

只要您检查另一方的价值,就没有安全问题。我至少要检查值是否是另一方的值,例如is_int($_GET['id']),你可以进一步检查它是否是一个有效的id,但这对你的数据库来说是昂贵的。 / p>

它真的不是问题的原因是,无论如何,ID在你的网址中有99%的可能性,所以它不像你给出任何秘密。

答案 3 :(得分:0)

不是text而是hidden

<input type="hidden" value="<?php echo $id_of_question;?>" />

答案 4 :(得分:0)

我觉得使用隐藏属性而不是css更好。

<input type="hidden" value="<?php echo $id_of_question;?>" />

我已经在我的网站上使用了很长时间。但是,可能会有更好的方法。

答案 5 :(得分:0)

您也可以使用

<form name="form" action="formSubmitUrl.php?id=<?php echo $id ;?>">
<input type="hidden" name="id" value="<?php echo $id;" />
</form>

你可以查看帖子并获取表格的价值..