Введите текстовое значение для определенных слов - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть текстовое поле в контактной форме, пользователи должны ответить на простой вопрос (я знаю, что это не лучший способ подойти к спаму, у нас уже есть другие вещи, капча, приманки и многое другое).

Вопрос в том, что я просто хочу дать пользователю возможность 2 ответа.

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

Я хочу, чтобы текстовое поле проходило с более чем одним словом, скажем, "foo" и "baz"

Как мне решить эту проблему?

1 Ответ

1 голос
/ 17 апреля 2019

@ tim (косвенно) предлагает использовать логический оператор. Решение с использованием этого будет выглядеть следующим образом:

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

Это тот путь, если условия, которые вам нужно проверить, не связаны друг с другом (например, если вам нужно было проверить значения из двух разных полей формы). Но в вашем случае я бы порекомендовал проверить, есть ли указанное значение в списке допустимых значений:

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

Это немного более короткий код (и, я бы сказал, более читаемый и, следовательно, более удобный для сопровождения) в случае с двумя значениями, но он становится все лучше и лучше, если вы обнаружите, что вам нужно добавить третий и четвертый варианты.

...