У меня есть базовая форма регистрации, и если вы проверяете, не задано ли поле (если (! $ Name)), оно всегда переходит в 'else', даже если поле пустое. Кто-нибудь знает, почему? (Когда я пытаюсь проверить его в обратном порядке (if ($ name)), он показывает строку ошибки.) * var_dump ($ name) - всегда возвращает строку, а не false. Я предполагаю, что это часть проблемы? ...
Большое спасибо!
<?php
$error = '';
if(isset($_POST['submit'])){
$name = trim(filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING));
if(!$name && preg_match("/^([\w]){2,50}$/", $name)){
$error = ' * Please enter a valid name';
}
?>
<form action="" method="post">
<label for="name">Name:</label><br>
<input type="text" name="name"> <br><br>
<input type="submit" name="submit" value="Sign up">
<span class="error"><?= $error ?></span>
</form>
Ваш код не соответствует вашему вопросу –
Как $ name должно соответствовать этому регулярному выражению, если оно является пустой строкой? Невозможно удовлетворить оба условия. Вы имели в виду использовать '||' вместо '&&'? – gla3dr
@ gla3dr это именно то, и это все, что нужно было изменить. –