繁体   English   中英

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

[英]I can send form data using GET method but not POST, why?

所以我正在尝试学习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>

如前所述,如果将form方法更改为GET,则完全没有问题。 但是,使用POST方法时似乎没有发送数据。

这是使用GET方法的输出:

这是工作! 输入:测试

得到

array(1){[“ nTesting”] => string(4)“ test”}

这是使用POST方法的输出:

它不起作用! 输入:

开机自检

数组(0){}

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

如果您使用的是Chrome

  1. 前往index.html
  2. 按f12。 开发人员工具将出现
  3. 点击网络
  4. 勾选保留日志并禁用缓存(我通常只是这样做)
  5. 在index.html中,单击“提交”按钮(不要关闭开发工具)
  6. 返回开发人员工具,点击“ teste.php”
  7. 单击标题,然后展开常规。 您将看到“请求方法”。 应该是POST

在使用@MuriloRM后,我们最终遇到了PHPStorm的基本错误

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM