PHP isset не работает в методе POST

Я попытался создать форму с помощью метода post, и я хочу проверить, заполнены ли поля isset (). Но даже если поля пусты, isset возвращает true.

Вот упрощенный код: (имя страницы: test.php, метод post направлен на себя)

if (isset($_POST['test'])) {
echo 'field set';
}

?>

<form method="post" action="test.php">
<input type="text" name="test"/>
<input type="submit" value="Submit"/>
</form>

Когда вы отправляете сообщение, оно всегда повторяет «набор полей», даже если вы ничего не вводили в «тест».

Спасибо за ваши ответы!

1

Решение

Так что проверь $_POST['test'] пусто или нет и попробуйте вот так

if (isset($_POST['test']) && trim($_POST['test']) != '') {
echo 'field set';
}

Вы также можете использовать empty,но Note that "0" is also "empty" и наряду с этим лучше trim входы для удаления пробелов. Другой способ — проверить длину ввода, используя strlen

if (isset($_POST['test']) && trim(strlen($_POST['test'])) > 0) {
echo 'field set';
}
6

Другие решения

попробуй с empty() проверить бланк причины после отправки формы $_POST['test'] всегда находится в isset() даже пусто так что нужно проверить с empty()

if (!empty($_POST['test'])) {
echo 'field set';
}

0 будет пустым / пустым с проверкой empty()

6

Вы можете сделать это с empty() method.try с этим кодом.

пример: echo !empty($_POST['test']) ? "field set" : "" ;

1

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

Что бы вы предпочли, это посмотреть, установлен ли ключ, и также является ли ключ пустым или нет.

Это вы можете сделать:

if( isset( $key['test'] ) && $key['test'] !== "" ){
//Do something
}
0
По вопросам рекламы [email protected]