PHP-使用GET提交表单时不接收URL变量

PHP-使用GET提交表单时不接收URL变量,php,post,get,Php,Post,Get,我有一个使用GET方法的表单,我还使用action方法传递一些URL变量: <form action="items.php?a=1&b=2" method="get">...</form> 。。。 在items.php中,我使用$\u REQUEST解析a、b变量的内容,但除非我在表单中使用POST as方法,否则变量将显示为空或不存在 我已经了解了POST、GET和REQUEST之间的区别,但我不确定如何解决这个问题。我需要使用GET的表单,以便它缓存结果。

我有一个使用GET方法的表单,我还使用action方法传递一些URL变量:

<form action="items.php?a=1&b=2" method="get">...</form>
。。。
items.php
中,我使用
$\u REQUEST
解析a、b变量的内容,但除非我在表单中使用POST as方法,否则变量将显示为空或不存在


我已经了解了POST、GET和REQUEST之间的区别,但我不确定如何解决这个问题。我需要使用GET的表单,以便它缓存结果。当用户选择一个结果,然后在浏览器中单击“返回”时,他将返回结果集。

我认为您应该使用$\u GET而不是$\u REQUEST

例如:

$myVar = $_GET['a'];
$myVar2 = $_GET['b'];

要查看$\u GET表单的输出变量,请执行以下操作:

print_r($_GET);
只需使用以下内容访问VAR:

$a = $_GET['a'];
$b = $_GET['b'];

将方法切换到POST

现在,您将能够检索这两个

->通过$\u GET查找查询参数

->通过$\u POST查找POST参数


帮你自己一个忙,永远不要回头看那个怪物的请求。

在你的from中使用这个。。。。a、b变量的已用内容作为隐藏字段

 <form action="items.php" method="get">
  ...
 <input type="hidden" name="a" value="1" />
 <input type="hidden" name="b" value="2" />
</form>

...

并将变量作为
$\u get['a']
$\u get['b']

首先,表单将从请求中删除变量a和b。要将它们添加到GET请求中,请使用以下命令:

<form action="index.php" method="get" >
<input type="hidden" name="a" value="1" />
<input type="hidden" name="b" value="2" />
....
</form>

试着把它们放在表单中的隐藏字段中:
。你是说如果你使用POST,你就不能得到“$\u REQUEST[“a”]”的值?听起来有点奇怪。。也许您可以尝试添加隐藏的输入字段以在表单中存储a和b变量。然后使用“items.php”作为操作。您应该能够接收$\u请求中的所有输入字段。编辑:@jensgram:相同的想法相同time@jensgram:它们必须是URL参数。@crothass:表单必须使用GET,而不是POST。如果我使用GET提交,我无法按要求检索a&b。我需要通过请求进行解析,因为变量可能会在应用程序的其他部分发送到此页面,也可以使用其他方法,例如url。如果我使用POST,那么我会在items.php中获得一个resultset,单击其中一个,然后在浏览器中单击“上一步”。结果:“确认表单重新提交”错误,使用GET时不会发生此错误。解决方法是什么?好吧,假设我坚持使用POST。然后,我在items.php中得到一个结果集,单击其中一个,然后在浏览器中单击“上一步”。结果:“确认表单重新提交”错误。解决办法是什么?有几种。但首先:确保你理解为什么浏览器会问你这个问题:这是出于一个非常合理的原因。与这种情况相比:(1)你走进一家银行。(2) 你给你的房东开一张100美元的支票。(3) 银行职员对你说:谢谢!(4) 你出去。现在假设您可以按几次后退按钮返回(3)。在这种情况下,如果员工问你:你确定要再开一张100美元的支票吗?但是“解决方案”被称为POST/REDIRECT/GET。请看这里:
$_GET['a'] // 1