【问题标题】:Getting HTTP ERROR 405 when trying to submit simple form php atom尝试提交简单表单 php atom 时出现 HTTP ERROR 405
【发布时间】:2020-11-29 03:31:39
【问题描述】:

它可能与谁有关,

我最近在学习 HTML、CSS、JS,现在也在学习 PHP。我在 Atom 工作并使用 atom-live-server 来观看我在做什么。我学习了关于 PHP 的 W3schools 课程,即使我复制他们的代码,我也会在 Google Chrome 中收到错误(HTTP ERROR 405)。在调查了一段时间后,我找不到解决方案。我已经向 atom 添加了一个 PHP 服务器并设置了正确的路径。下面我附上相关代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Title</title>
    <link rel = "stylesheet" src = "stylesheet.css">
  </head>
  <body>
    <form action="passwords.php" method = "post">
      <input type = "text" name = "Username" placeholder = "Username" required>
      <input type = "password" name = "Password" placeholder="Password" required>
      <input type = "submit" value = "Submit">
    </form>
    <script src = "script.js"></script>
  </body>

还有php文件:

<html>
<body>
  <? php echo $_POST["Username"]; ?>
  <? php echo $_POST["Password"]; ?>
</body>
</html>

【问题讨论】:

  • 你能在你的 php 服务器上运行简单的 echo "hello world" 吗?
  • 您使用的是哪种 HTTP 服务器?
  • 请删除不必要的空格。
  • @MohammedBilal 我刚刚尝试过,但我认为文件中的 PHP 不是问题所在。无论我插入什么代码,提交表单时打开的页面都会返回错误。
  • @SalimIbrogimov 我什至不知道如何找到...

标签: php html atom-editor


【解决方案1】:

我从来不知道 Atom 有一个 php 服务器,所以我只是尝试了一下......

但我必须事先声明,我没有收到您的 http 405 错误。

我的文件设置 我将您的主文件设置为 index.php 并将您的 passwords.php 设置为原样。

在 ATOM 中,我右键单击 index.php 并选择“PHP Server Here”,它启动了带有 URL http://localhost:8000/index.php 的 Chrome 浏览器。 这样就显示了表单...然后填写并单击提交按钮,将我带到http://localhost:8000/passwords.php

但是您还有另一个问题,因为您的 PHP 打开标签中有空格。

&lt;? php 应该是&lt;?php

所以你的代码...

<html>
<body>
  <? php echo $_POST["Username"]; ?>
  <? php echo $_POST["Password"]; ?>
</body>
</html>

应该是这样的

<html>
<body>
  <?php echo $_POST["Username"]; ?>
  <?php echo $_POST["Password"]; ?>
</body>
</html>

使用&lt;?php echo 的替代方法是&lt;?=

作为调试的旁白?

检测错误。 在你的主文件中你可以使用。

<?php
// Enable FULL Error Reporting on the screen
// ONLY USE IN DEVELOPMENT
error_reporting(E_ALL);
ini_set('display_errors', 1);

注意:它似乎对&lt;? php 并不太在意,也没有将其视为错误,例如它未被检测为有效的php 代码。但它对所有其他 PHP 问题都有好处。

如果您在浏览器中查看 HTML 源代码,您会看到它正在输出...

来自浏览器的 HTML 源代码

<html>
<body>
  <? php echo $_POST["Username"]; ?>
  <? php echo $_POST["Password"]; ?>
</body>
</html>

查看数组值

使用var_dump($_POST);print_r($_POST); 将显示数组的所有值,在本例中为全局$_POST 数组。只是为了让您在需要时查看发布的内容。

【讨论】:

  • 感谢您快速而全面的回复。这是我在 stackoverflow 上的第一篇文章,我很高兴能这么快得到帮助。现在我尝试了您的建议,但是当我使用 php 扩展名更改文件并将 PHP-server 设置为 index.php 时,我得到一个带有(在选项卡上)“listing directory /”的选项卡,它只列出了保存在我的文件夹中的文件.我还更改了间距,所以谢谢你的提示!
  • @NielsvandenHeuvel 所以让我们后退一步......你的实际文件结构是什么?您在“直接上市”中看到了什么?
  • @Niels van den Heuvel 你甚至不需要 password.php 文件。将密码发布在同一个索引文件中,首先查看您的表单是否正常工作。删除所有内容并复制并粘贴来自 W3Schools 的基本 php 的工作示例。如果这仍然不起作用,那么问题出在您的文件结构中。这不应该花那么长时间来打印一个 post 变量。错误 403 表示您正在发送或接收格式错误的请求的客户端错误。
  • @TimBrownlaw 不确定您是否从我对该主题的最后评论中收到通知;但正如你所看到的,我解决了它。谢谢你们的帮助!
  • @MohammedBilal 我不确定您是否从我对线程的最后评论中收到通知;但正如你所看到的,我解决了它。谢谢你们的帮助!
【解决方案2】:

所以我才弄清楚发生了什么。首先,我尝试安装 XAMPP 以及 Apache 和 mySQL 服务器(结果证明这不是解决方案并且基本上没用)。但是当我启动这些服务器时,我发现为这些服务器保留的端口由于某种原因被阻止(可能是 McAffee Livesafe)。这让我尝试在 Atom 中更改内置 PHP 服务器中的端口。我将它从 8000 更改为 8081。接下来,当我尝试将我的 PHP 服务器设置为我的 index.php 文件时,Windows 提示我是否允许在相关端口使用 PHP 服务器。我显然做到了。在此之后,我在 passwords.php 中编写的 PHP 代码起作用了!

补充说明 对于遇到相同问题的任何人:由于某种原因,Atom 中的 atom-live-server 无法与 PHP 文件一起正常运行。如果你使用任何 PHP 文件,启动这样的服务器是没有用的,因为你会得到和我一样的错误。所以它归结为刷新页面。

感谢所有试图帮助我解决问题的人!尽管它可能没有给我带来最终的解决方案,但它仍然帮助了我很多。

【讨论】:

  • 我建议您使用 Netbeans IDE 或 Eclipse IDE for php 进行适当的开发。这些嬉皮文本编辑器基本上专注于 JavaScript 开发,带有一点 php 之类的东西。
  • @MohammedBilal 感谢您的提示。我一定会调查的。我已经在 java 中使用了 eclipse。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 2020-05-30
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
相关资源
最近更新 更多