【问题标题】:PhpStorm: Simple PHP form not postingPhpStorm:简单的 PHP 表单未发布
【发布时间】:2016-04-21 22:21:44
【问题描述】:

我查看了几个示例,甚至复制了解决方案;无论我做什么,我在表单中的 HTML 数据不会 发布

对于卡住的用户来说,最典型的 SO 解决方案是包含 name 属性,但自从我第一次尝试以来,我就有了。

这是我的 HTML:

<form style="color:red;" action="test.php" method="post">
    Name: <input style="color:blue;" type="text" name="formName"><br>
    E-mail: <input style="color:blue;" type="text" name="formEmail"><br>
    <input type="submit">
</form>

下面是页面外观的快照。

这是test.php的代码

<html>
<body>

Welcome <?php echo $_POST["formName"]; ?><br>
Your email address is: <?php echo $_POST["formEmail"]; ?>

</body>
</html>

下面是我填写的数据图片。

当我点击提交时的结果页面。

我使用 PHP 已经好几年了;我不记得它有这么复杂,所以我认为我做错了什么或者我的 ini 文件有问题?谢谢。


编辑:以下是我尝试过的一些建议:

  • “尝试将&lt;?php phpinfo(); ?&gt; 放入测试.php” 它成功地工作,如下所示。

  • “当你var_dump($_POST)时会发生什么?” 唯一打印到屏幕上的是array(0) { }

  • “你如何访问这个?作为http://localhost/file.xxxfile:///file.xxx?” 这实际上有助于缩小问题的范围!如前所述,我尝试以 两种 方式对此进行测试;通过 PhpStorm(部署在 localhost 环境中)和我的服务器。我搞砸了服务器方法,并没有通过 localhost 运行它;一旦我解决了这个问题,PHP 脚本就会按预期在服务器上运行!所以现在我可以将其缩小到我的 PhpStorm 环境 所特有的问题,该环境在 localhost 中运行脚本。请记住,我已经对服务器和 PhpStorm 尝试了所有建议,这意味着我确实在 PhpStorm 中尝试了 &lt;?php phpinfo(); ?&gt; 并且它按预期工作。因为服务器方法工作正常,所以我的机器上的设置、.ini 和/或 php 安装可能不好。

【问题讨论】:

  • print_r($_POST) 在第二页显示什么?
  • 这段代码应该可以工作。我想知道这是否是环境问题?
  • html文件和test.php在同一个文件夹吗?
  • 它为我运行,所以它看起来像一个配置问题
  • 尝试将&lt;?php phpinfo(); ?&gt; 放入测试.php 文件中,看看它是否显示您的PHP 信息。如果没有显示,您的环境可能配置错误。

标签: php html phpstorm


【解决方案1】:

该代码适用于我(显然也适用于其他人)。从淘汰的过程来看,你的问题其实只有一个答案:

你的环境搞砸了。

首先,确保 PHP 已安装并正常运行。使用此代码创建一个测试.php 文件:

<?php

phpinfo();

?>

通过在网络浏览器中访问此页面,您应该看到大量 PHP 信息。如果您没有看到任何内容,则说明 PHP 没有安装或配置正确。

【讨论】:

  • @8protons 当您在代码中回显一个简单的调试语句时会发生什么? (例如,echo "hello world")它会打印吗?
  • 是的,它会打印:/
  • 我对我的问题进行了一些更新,以显示我已采取的一些额外的故障排除步骤。
【解决方案2】:

请检查 test.php 是否与您的第一个 html 文件位于同一目录中。如果是真的,请尝试替换为:

第一个:

<form style="color:red;" method="POST" action="test.php">
    Name: <input style="color:blue;" type="text" name="formName"><br>
    E-mail: <input style="color:blue;" type="text" name="formEmail"><br>
    <input type="submit">
</form>

test.php

<html>
<body>

Welcome <?=$_POST["formName"]?><br>
Your email address is: <?=$_POST["formEmail"]?>

</body>
</html>

更新 尝试将此代码添加到您的 php-script 的标头中,这将显示任何错误:

<?
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
?>

【讨论】:

  • 您好,感谢您的后续更新。首先,我想问一下您的更新是否应该以&lt;?php 开头而不是&lt;??我不确定,对不起。无论如何我都试过了,我得到的只是一个空白屏幕。请阅读我对原始问题所做的更新;我开始认为这是我的机器或 PhpStorm 上的环境问题。
【解决方案3】:

这实际上是 PhpStorm 的一个众所周知的问题。您可以按照本指南PHPstorm 10.0.3 Error 502 Bad Gateway (Due to JavaVM?) 进行操作,并会发现它可以解决此问题(就像对我一样)。正如作者在那里所说,“您正在使用 PhpStorm 自己的内置 Web 服务器,它现在存在一些问题(尤其是 POST 请求,例如 WEB-17317)

基本上,我所做的是按照此页面上的步骤操作:https://confluence.jetbrains.com/display/PhpStorm/Deploying+PHP+applications+with+PhpStorm

一个好的开始是配置您的项目以部署在您的服务器上。

工具 -> 部署 -> 配置

【讨论】:

    【解决方案4】:

    您忘记了调用解释器的 ?php 指令。

    【讨论】:

    • 对不起,我不知道那是什么意思。 PhpStorm 在我的口译员上给了我一个 OKAY 确认。
    • 你能说得更具体些吗?很难说出你的意思。
    • 哪里不见了&lt;?php我没看到船
    猜你喜欢
    • 1970-01-01
    • 2014-09-15
    • 2013-11-07
    • 1970-01-01
    • 2016-11-28
    • 2014-01-24
    • 1970-01-01
    • 2016-03-23
    • 2012-06-28
    相关资源
    最近更新 更多