如何根据用户输入输出 HTML 页面


How to output an HTML page based on user input

我想创建一个HTML(或者php?)页面,根据用户提供给下拉框的输入参数构建一个新的HTML页面。我只是不知道你如何处理输入。

这是我的 HTML:

<html>
    <body>
         <input type="number" min="1">
    </body>
</html>

是的,我知道这不是完整的 HTML 页面,但我只想专注于 <input> 标签。我知道您可能必须将其设置为等于PHP变量?

我希望它生成一个不同的 HTML 页面,如下所示:

<html>
    <body>
         <p>You have chosen: $input </p>
    </body>
</html>

可能问错了,但我希望我正在寻找的东西是有意义的。我需要知道如何处理用户输入。我找不到讨论这个问题的线程。我需要生成一个新的 HTML 文件吗?或者只是覆盖当前的一个,也许有一个重置按钮?我很困惑。

在简单的情况下,您将有两个页面:表单和结果页面。您可以使用以下两种方法之一将数据从表单页发送到结果页:GET 或 POST。

GET 表示您发送的数据被放入页面 URL 中。这很有用,因为这样您就可以链接到结果页的特定版本,但可能会有危险,因为您不想将敏感数据放在 URL 栏中。

POST 表示数据在后台使用 HTTP 请求发送。对于密码之类的东西,这是可取的。

GET和POST数据几乎可以被任何服务器端语言读取,并用于即时生成HTML。下面的示例使用 PHP。

表单页不一定需要任何服务器端代码,只需要基本的 HTML。下面是一个简单的示例:

<!DOCTYPE html>
<html>
  <form method="GET" action="my_result.php">
    <input type="text" name="my_value">
    <input type="submit">
  </form>
</html>

您的第二个页面(结果页面)应具有您在表单的 action 属性中指定的名称。这是需要服务器端代码的页面。所以这里有一个例子my_result.php

<!DOCTYPE html>
<html>
  <p><?php echo $_GET['my_value']; ?></p>
</html>

显然,只要输入元素的name属性与 PHP 中的键匹配,my_value可以而且应该替换为您想要调用数据的任何内容。

此示例使用 GET 方法。您可以通过更改表单的 method 属性并使用 $_POST 而不是 $_GET(如果您使用的是 PHP)来使用 POST。

如果您使用 $_REQUEST 而不是 $_GET$_POST ,它会找到一个通过 GET POST 传递的值。这通常不如明确说明您的值是如何传递的那么安全。


附录:出于安全目的,某些服务器配置为不允许直接使用 php 超全局变量(如 $_GET$_POST$_REQUEST)的值。这是因为在应用程序中使用用户输入之前,您确实应该始终对其进行清理。所需的清理类型取决于输入的类型及其使用方式,这远远超出了本问题的范围。为此,php 提供了filter_input函数。

清理过滤器是filter_input函数的可选参数,因此,如果您真的想使用未过滤的数据,您可以简单地省略它(但要知道这是危险的)。在这种情况下,您可以将上述代码中的所有$_GET['my_value']实例替换为 filter_input(INPUT_GET, 'my_value')

这不是一个教程,但我会引导您了解一些要点:

  1. 您可以使用表单元素获取 html 的用户输入。 阅读更多关于表单和表单方法(GET 和 POST)的信息。
  2. 那么,当用户提交时如何打印用户输入? PHP 支持使用 $_GET 和 $_POST 以输入名称作为键的 GET 和 POST。
  3. 由于安全性的原因,处理用户输入需要格外小心。 用户可能会提交恶意内容,这些内容稍后会攻击您或其他用户。

尝试如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<?php
if ($_POST) {
    echo "<h3>You have selected ".$_POST['number']."</h3>";
} else {
    echo '
    <form method="post" action="">
        <select name="number" id="number">
            <option value="1" >1</option>
            <option value="2" >2</option>
            <option value="3" >3</option>
        </select>
        <input type="submit" value="submit">
    </form>
    ';
}
?>

</body>
</html>

要处理用户输入,您必须使用表单

<form action="action_page.php">
  <input type="number" min="1 name="my-number">
  <input type="submit" value="Submit">
</form>

用户设置号码并按提交按钮后,您将获得 $_REQUEST['my-number'] action_page.php