【问题标题】:Input text value for specific words输入特定单词的文本值
【发布时间】:2019-04-16 22:33:25
【问题描述】:

我在联系表单中有一个文本字段,用户必须回答一个简单的问题(我知道这不是处理垃圾邮件的最佳方式,我们已经有其他东西验证码、蜜罐等等)。

问题是我只想给用户 2 个答案的选项。

    if ($_POST['answer'] == "banana") {
        // we're OK, do something
    } else {
       alert("YOU FAILED!!!");
    }

我希望文本字段包含超过 1 个单词,比如“foo”和“baz”

我该如何解决这个问题?

【问题讨论】:

  • 澄清一下:您想传递两个具有相同 POST 名称变量的单词,还是想将单个 POST 值与两个可能的选项进行 OR 条件比较?
  • 我更改了 POST 名称,这只是一个示例,我希望能够通过 2 个答案中的任何一个提交表单。
  • if (in_array($_POST['answer'], ['banana', 'platano'])) {
  • @GregSchmidt 非常感谢!这很完美!

标签: php validation input textfield


【解决方案1】:

@tim(间接)建议使用逻辑运算符。使用它的解决方案如下所示:

if ($_POST['answer'] == 'banana' || $_POST['answer'] == 'platano') {

如果您需要检查的条件彼此无关(例如,如果您需要检查来自两个不同表单字段的值),则可以采用这种方式。但在您的情况下,我建议检查提供的值是否在可接受值列表中:

if (in_array($_POST['answer'], ['banana', 'platano'])) {

在双值情况下,这代码稍微短一些(而且,我认为,更具可读性,因此更易于维护),但如果您发现需要添加第三个和第四个选项,它会变得越来越好。

【讨论】:

    猜你喜欢
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多