我可以使用 GET 方法发送表单数据,但不能使用 POST 发送表单数据,为什么?



所以我正在尝试学习html + php,但似乎我碰壁了。如果我在我的 html 表单中使用 GET 方法,参数可以很好地发送到我的 php 文件,但是如果我尝试使用 POST 方法做同样的事情,则不会发送任何参数。

@Edit:我已经删除了此处显示的初始代码示例,因为我发现它不是特定于该代码的问题。相反,我发布了一个基本表单和一个基本的 php 脚本,它们有同样的问题:

文件:

<!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 方法的输出:

它不起作用!输入:

发布

array(0( { }

此外,使用开发人员工具,我可以看到在网络选项卡的formData部分中有一个参数nTesting:test。然而,什么都没有显示。

如果您使用的是 Chrome

  1. 转到索引.html
  2. 按 f12。开发人员工具将显示
  3. 点击网络
  4. 勾选保留日志并禁用缓存(我通常就是这样做的(
  5. 从索引中.html单击提交按钮(不要关闭开发工具(
  6. 返回开发人员工具,单击"teste.php
  7. 单击标题,然后展开常规。您将看到"请求方法"。它应该是开机自检

在与@MuriloRM一起工作之后,我们最终得到了PHPStorm的基本错误

。请投票决定该问题 https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000097930-Can-not-use-POST-method-in-PhpStorm

最新更新