url中的php传递参数
我有一个url中的php传递参数,php,html,Php,Html,我有一个表单和一个PHP函数: <?php if(isset($_GET['sub'])) { var_dump($_REQUEST); die; } ?> <form action="index.php?a=12" method="get"> <input name="sub" type="submit" value="Calc"> </form> 但当我点击提交时,我什么也得不到 如何在URL中传递变量a(没有任何输入)以
表单
和一个PHP函数:
<?php
if(isset($_GET['sub'])) {
var_dump($_REQUEST);
die;
}
?>
<form action="index.php?a=12" method="get">
<input name="sub" type="submit" value="Calc">
</form>
但当我点击提交时,我什么也得不到
如何在URL中传递变量a(没有任何输入)以及为什么此方法不起作用?此方法不起作用,因为您将anotsub变量放在URL中,所以我想您需要更改为:
<?php
if(isset($_GET['a'])) {
var_dump($_REQUEST);
die;
}
?>
尝试执行
var\u转储($\u请求)代码>在您的if之前查看您所拥有的。您需要a,但您得到sub。这是个问题。对于输入,必须使用a。您可以看到这段代码中的差异
输出:
数组(大小=1)“a”=>字符串“Calc”(长度=4)
您有两个选项可以在URL中发送变量:
使用超链接
使用带有GET的表单,并将字段隐藏
您正在混合这两种方法,GET表单的内容将覆盖您的操作。请尝试以下操作,而不是:
if(isset($_GET['sub'])) {
使用:
你需要使用隐藏的输入——如果你是硬编码的,为什么不在php中设置一个常量,那么就不太可能有人改变itI的值。我知道我可以使用隐藏的输入,但我会尝试在url中传递它。这是不可能的吗?因为您使用get
作为表单方法-表单的输入覆盖操作中的URL参数
-如果您post
表单,它会起作用。因此,如果我想在URL中传递某些内容,我必须使用post方法?谢谢如果要在action
yes中向URL追加其他参数。。。不过,在很多情况下,你实际上并不想这样做——通常,如果你在更新资源,你会使用POST,如果你在检索资源,你会使用GET;从技术上讲,这两种方法很少同时使用。您传递了这样一个隐藏的值,而不仅仅是在URL中,您希望输出什么?如果您想在提交后只查看index.php。您必须使用post方法
<form action="index.php" method="get">
<input name="a" type="hidden" value="12">
<input name="sub" type="submit" value="Calc">
</form>
if(isset($_GET['sub'])) {
if(isset($_GET["sub"))}