Как сделать поле валидным, если оно не пустое - PullRequest
0 голосов
/ 18 октября 2018

Я проверяю поле, чтобы оно выдавало ошибку, если его значение пустое или длина меньше или равна 10. Но оно проверяет, только если оно пустое, если длина равна 1 или больше, оно отправляет значение.

Нужна помощь здесь, чтобы подтвердить это

if (empty($_POST["comment"]) && $_POST["comment"] <= 10) {
    $comment_err = "Please send a message more than 10 characters";
}
else {
    $comment = sanitize($_POST["comment"]);
}

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

Просто проверьте длину.Если длина больше 10, то она определенно не пустая, поэтому вам не нужно явно это проверять.

if(isset($_POST["comment"]) && strlen($_POST["comment"]) > 10){

isset просто для предотвращения неопределенного предупреждения об индексе, если этот ключ комментарияне существует.

(Кстати, это меняет ваши блоки if и else, потому что он проверяет правильность данных вместо состояния ошибки.)

Это было частично ответил в комментариях , но Funk Forty Niner настолько великодушен, что он бесплатно раздает свою мудрость, не ожидая фальшивых интернет-очков, и все, что он просит взамен, - это некоторое уважение, когда он приходит домой.

0 голосов
/ 18 октября 2018

У вас есть две проблемы в вашем коде:

  1. сначала ваше условие неверно, вы не можете одновременно иметь пустой индекс и проверять его размер.Таким образом, у вас должно быть empty($_POST["comment"]) || $_POST["comment"] <= 10
  2. , вы также не можете проверить длину строки, сравнивая значение с целым числом, как сказал @Funk Forty Niner в комментариях, вы должны использовать strlen() function http://php.net/manual/en/function.strlen.php

, поэтому ваш окончательный код будет:

if(empty($_POST["comment"]) || strlen($_POST["comment"]) <= 10){
 $comment_err = "Please send a message more than 10 characters";
}
else{
 $comment = sanitize($_POST["comment"]);
}
0 голосов
/ 18 октября 2018

Ваш вопрос не ясен и не точен , но я думаю, что вы ищете, если:

  • Сгенерируйте ошибку , если переменная пуста
  • Выдает ошибку , если длина переменной меньше 10

Так что используйте OR (||) в вашем if оператор и strlen() для получения переменной длины (, как указано в комментарии Funk Forty Niner ):

if(empty($_POST["comment"]) || strlen($_POST["comment"]) <= 10){
   $comment_err = "Please send a message more than 10 characters";
}
else{
   $comment = sanitize($_POST["comment"]);
}
...