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

kat*_*245 3 html php

我想制作一个HTML(或php吗?)页面,该页面根据用户提供给下拉框的输入参数来构造新的HTML页面。我只是不知道您如何处理输入。

这是我的HTML:

<html>
    <body>
         <input type="number" min="1">
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

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

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

<html>
    <body>
         <p>You have chosen: $input </p>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我可能会问所有这些错误,但是我希望这是有意义的。我需要知道如何处理用户输入。我找不到讨论此话题的主题。我需要生成一个新的HTML文件吗?还是只覆盖当前的一个,也许有一个重置按钮?我很混乱。

Woo*_*low 6

在简单的情况下,您将有两个页面:表单和结果页面。您可以使用以下两种方法之一将数据从表单页发送到结果页: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>
Run Code Online (Sandbox Code Playgroud)

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

<!DOCTYPE html>
<html>
  <p><?php echo $_GET['my_value']; ?></p>
</html>
Run Code Online (Sandbox Code Playgroud)

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

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

如果使用$_REQUEST而不是$_GET$_POST,则它将找到通过GET POST 传递的值。通常,这比显式说明您的价值是如何传递的安全性低。


附录:为了安全起见,某些服务器配置为禁止您直接使用php超全局变量(例如$_GET,)的值。那是因为您确实应该始终在应用程序中使用用户输入之前清除用户输入。所需消毒的类型取决于输入的类型及其使用方式,并且超出了此问题的范围。为此,php提供了该功能。$_POST$_REQUESTfilter_input

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