如何根据用户输入

时间:2016-02-20 18:01:37

标签: php html

我想创建一个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文件?或者只是覆盖当前的一个,并可能有一个重置按钮?我很困惑。

4 个答案:

答案 0 :(得分:5)

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

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

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>

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

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

如果您使用$_REQUEST而非$_GET$_POST,则会找到通过GET POST传递的值。这通常不如明确说明您的价值如何传递安全。

附录:出于安全考虑,某些服务器被配置为禁止您直接使用php超级全局的值,例如$_GET$_POST$_REQUEST。这是因为在应用程序中使用之前,您确实总是清理用户输入。所需的消毒类型取决于输入的类型及其使用方式,并且远远超出了本问题的范围。为此,php提供了filter_input函数。

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

答案 1 :(得分:3)

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

  1. 您可以使用表单元素通过html获取用户输入。阅读更多关于表单的形式和方法(GET和POST)。
  2. 然后,如何在用户提交时打印用户输入? php使用$ _GET和$ _POST支持(GET和POST),输入名称为键。
  3. 由于安全性,处理用户输入需要额外注意。用户可能会提交以后攻击您或其他用户的恶意内容。

答案 2 :(得分:1)

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

<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中的值

答案 3 :(得分:1)

尝试以下

<!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>