php获取变量不在链接中

Iva*_*van 0 html php get

以下是Opera Dragonfly向我展示的内容:

<form action="rejectQuestion.php?q_id=24" id="reject_question" method="get">
<input type="submit" value="Reject" id="form_button"/>
</form>
Run Code Online (Sandbox Code Playgroud)

但点击提交按钮后,我得到的是:

http://project/rejectQuestion.php?,所以没有争论.同样的事情是另一种形式.是服务器问题还是我生病了,我看不到代码问题?

Nie*_*sol 11

当表单具有时method="get",它会覆盖action与要发送的表单数据中的任何查询字符串.因此,如果您想要任何"固定"值,则必须将它们添加为隐藏输入:

<form action="rejectQuestion.php" id="reject_question" method="get">
  <input type="hidden" name="q_id" value="24" />
  <input type="submit" value="Reject" id="form_button" />
</form>
Run Code Online (Sandbox Code Playgroud)

但是 ...... HTTP规范明确规定GET请求不得用于任何变形性的事情,例如你似乎在用"拒绝问题"这个名称来判断.你应该使用这个POST请求.

应该这样做的一个原因是防止欺诈性请求.恶意用户可以轻松地向不知情的用户发送"删除"链接,受害者可以发现他们的东西不见了.它甚至不必是被点击的链接,恶意用户可以简单地在公共论坛上发布看起来像破碎的图像,但它实际上向服务器发出了请求以及修改或删除的内容.

POST永远不应该是所有变革性的请求GET.GET应该只用于获取东西.