简单的PHP来处理HTML表单

时间:2017-05-01 22:09:08

标签: php html forms

我相信这对你们很多人来说非常简单!我正在尝试学习基本的HTML / PHP表单处理。该站点托管在本地Apache服务器上。我已经让PHP正常工作,并且很高兴服务器工作正常。

我有两个文件,一个是settings.html,其中用户有一个3个元素的形式,他们可以输入一些浮点值(湿度,温度和光线容差)。提交按钮触发一个名为process.php的单独文件,该文件应显示三个值。代码如下:

settings.html:

<!DOCTYPE html>
<html>
  <head>
      <meta content="text/html; charset=ISO-8859-1"  http-equiv="content-type">
    <meta http-equiv="refresh" content="179" >
    <title>Sparks - Settings</title>
    <link rel="stylesheet" type="text/css"  href="css/default.css">
  </head>
  <body>
    <div id="logo">
      <img style="width: 335px; height: 142px;" alt="ESP8266 Logo" src="images\imgESP8266.png">
    </div>
    <br>
    <form method="post" action="php/process.php">
      Humidity Tolerance : <input type="float" name="humTolerance" placeholder="Enter %" /><br />
      Temperature Tolerance : <input type="float" name="tempTolerance" placeholder="Enter %" /><br />
      Light Tolerance : <input type="float" name="lightTolerance" placeholder="Enter %" /><br />
      <input type="submit" value="Submit" />
    </form>
  </body>
<html>

的PHP / process.php:

<?php //process.php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
      $humTolerance = $_POST["humTolerance"];
      $tempTolerance = $_POST["tempTolerance"];
      $lightTolerance = $_POST["lightTolerance"];
  }

  echo <<<_END
    <html>
      <head>
        <meta content="text/html; charset=ISO-8859-1"  http-equiv="content-type">
        <meta http-equiv="refresh" content="179" >
        <title>Sparks - Settings</title>
        <link rel="stylesheet" type="text/css"  href="css/default.css">
      </head>
      <body>
        humTolerance is: $humTolerance<br>
        tempTolerance is: $tempTolerance<br>
        lightTolerance is: $lightTolerance<br>
      </body>
    </html>
  _END;
?>

这产生了HTTP ERROR 500,我看不出原因。我可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:3)

正如我在评论中所说:

  

“(第一个)问题出现在heredoc closing identifier之前,它包含空格。”

  

“第二个:type="float"不是输入的有效类型”

您需要将那些输入类型替换为有效的输入类型。

请注意,并非所有浏览器都支持某些HTML5属性,请参阅上述内容作为参考。

因此请使用type="number"type="text"

在关闭heredoc标识符之前删除空格的PHP。

<?php //process.php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
      $humTolerance = $_POST["humTolerance"];
      $tempTolerance = $_POST["tempTolerance"];
      $lightTolerance = $_POST["lightTolerance"];
  }

  echo <<<_END
    <html>
      <head>
        <meta content="text/html; charset=ISO-8859-1"  http-equiv="content-type">
        <meta http-equiv="refresh" content="179" >
        <title>Sparks - Settings</title>
        <link rel="stylesheet" type="text/css"  href="css/default.css">
      </head>
      <body>
        humTolerance is: $humTolerance<br>
        tempTolerance is: $tempTolerance<br>
        lightTolerance is: $lightTolerance<br>
      </body>
    </html>
_END;
?>

还使用PHP的错误报告:

如果您无权访问日志,请将其设置为捕获并显示。