【发布时间】:2017-07-06 21:22:05
【问题描述】:
所以我正在尝试学习 html+php,但似乎我碰壁了。如果我在我的 html 表单中使用 GET 方法,参数会很好地发送到我的 php 文件,但如果我尝试使用 POST 方法执行相同操作,则不会发送任何参数。
@Edit:我已经删除了此处显示的初始代码示例,因为我发现它不是特定于该代码的问题。相反,我发布了一个具有相同问题的基本表单和一个基本 php 脚本:
HTML 文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="testingForm.php" method="POST">
INPUT: <input type="text" id="iTesting" name="nTesting"/><br/>
<input type="submit" value="SUBMIT"/>
</form>
</body>
</html>
PHP 文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title></title>
</head>
<body>
<?php
/* THIS WORKS: */
/*if (isset($_GET["nTesting"]))
echo "It is working! ".$_GET["nTesting"];
else
echo "It is NOT working! input: ".$_GET["nTesting"];
echo "<br/>".$_SERVER['REQUEST_METHOD']."<br/>";
echo "<br/>".var_dump($_GET);//*/
/* THIS DOESN'T: */
if (isset($_POST["nTesting"]))
echo "It is working! ".$_POST["nTesting"];
else
echo "It is NOT working! input: ".$_POST["nTesting"];
echo "<br/>".$_SERVER['REQUEST_METHOD']."<br/>";
echo "<br/>".var_dump($_POST);//*/
?>
</body>
</html>
如前所述,如果我将表单方法更改为 GET,则完全没有问题。但是,使用 POST 方法时似乎没有发送数据。
这是使用 GET 方法的输出:
它正在工作!输入:测试
获取
array(1) { ["nTesting"]=> string(4) "test" }
这是使用 POST 方法的输出:
它不工作!输入:
发布
数组(0) { }
此外,使用开发人员工具,我可以看到网络选项卡的 formData 部分中有一个参数 nTesting:test。然而,什么都没有显示。
【问题讨论】:
-
var_dump($_POST); -
什么是
$_SERVER['REQUEST_METHOD']? -
转到开发者工具的“网络”选项卡,查看提交表单时发送的内容。
-
表单和php是分开的还是同一个页面?
-
转到开发者工具中的元素检查器,看看您是否看到
method="GET"或method="POST"。