Как проверить ввод формы, содержащий только пробел (ы) в PHP - PullRequest
0 голосов
/ 20 октября 2018

Я проверяю форму для моего сайта (все еще на локальном сервере).Я использовал помощь от w3schools.com в основном.Но я заметил, что моя форма принимает ввод, если пользователь вводит 1 или более пробелов.

Я знаю, что функция trim () удаляет пробел в начале и в конце данных, и это прекрасно работает.Но в случае, когда пользователь вводит только один или несколько пустых пробельных символов, проверка php возвращает его как пустое поле.

Ниже части моего кода:

function sanitize($input){
    $input = trim($input);
    $input = stripcslashes($input);
    $input = htmlspecialchars($input);
    return $input;
}
//Full Name Validation
//if field is empty and contains only whitespace
if ($_SERVER["REQUEST_METHOD"] == "POST"){
    if (empty($_POST["fname"])){
        $fname_err = "Cannot be empty";
    }
}

1 Ответ

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

Вы можете использовать функцию ctype_space.Он возвращает true, если все символы в строке создают пробел: http://php.net/manual/en/function.ctype-space.php

Попробуйте обновить второй оператор if, чтобы он также выполнял проверку ctype_space:

//Full Name Validation
//if field is empty and contains only whitespace
if ($_SERVER["REQUEST_METHOD"] == "POST"){
    if (empty($_POST["fname"]) || ctype_space($_POST["fname"])){
        $fname_err = "Cannot be empty";
    }
}

Кроме того, не забудьтена самом деле вызвать вашу функцию очистки.

...