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

时间:2017-07-06 21:22:06

标签: php html forms

所以我试图学习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){[&#34; nTesting&#34;] =&gt; string(4)&#34; test&#34; }

这是使用POST方法的输出:

  

它不起作用!输入:

     

POST

     

array(0){}

此外,使用开发人员工具,我可以看到网络选项卡的formData部分中有一个参数 nTesting:test 。但是,没有显示任何内容。

1 个答案:

答案 0 :(得分:1)

如果您使用的是Chrome

  1. 转到index.html
  2. 按f12。开发人员工具将显示
  3. 点击网络
  4. 勾选保留日志并禁用缓存(我通常只是这样做)
  5. 从index.html单击提交按钮(不要关闭开发工具)
  6. 返回开发者工具,点击“teste.php”
  7. 点击标题,然后展开常规。您将看到“请求方法”。它应该是POST
  8. 使用@MuriloRM后,我们最终得到了PHPStorm的基本错误

    请投票通过该问题的解决方案 https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000097930-Can-not-use-POST-method-in-PhpStorm