Здравствуйте! Хочу защитить форму ввода от невидимых символов на стороне сервера средствами PHP(пробел, табуляция). Т.е. когда пользователь вводит ТОЛЬКО пробелы или/и табуляцию то форма у меня отправляется и пустое значение записывается в базу. Как сделать чтобы такого не происходило?
Оказывается есть простое решение в самом php. ctype_space
Возвращает TRUE, если каждый символ в строке text создает какой-нибудь из пробельных символов, FALSE в противном случае. Кроме пробела, сюда также относятся символы табуляции, вертикальной табуляции, перевода строки, возврата каретки и перевода страницы.
http://php.net/manual/ru/function.ctype-space.php
if (ctype_space($content)) {
$content = null;
header("Location: /");
exit;
} else {
$content = htmlspecialchars($content);
}
Я могу предложить вариант на стороне клиента - у input'ов задавай атрибут pattern. Туда положи регулярное выражение, в котором будет отслеживаться, находится ли в value ТОЛЬКО пробелы или табуляция. И таким же способом можно дополнительно проверять value на стороне клиента. По моему это решение. Pattern кстати не даст отправить сообщение, которое не проходит валидацию по заданному регулярному выражению.
У вас в конкретном типе поля, может быть конкретный тип информации. Валидируйте это просто перед отправкой/вставкой
Например так можно проверить имя пользователя. Состоит из английских букв и цифр, длинной минимм 2, максимум 20 символов
//Убрать ведущие и закрывающие пустые символы
$username = trim($username);
if (!preg_match("/^[a-z\d_]{2,20}$/i", $username)){
echo "Что-то не так";
}
Можно регулярным выражением в php вырезать из поля все пробелы и табуляции, и после проверить длину символов поля, если длина после выреза пробелов и табов будет равна 0 - значит поле состояло только из пробелов и табов.
<?php
$name = $_POST['name'];
if( strlen($name) === 0 )
die('Пустое поле');
// Вырезаем пробелы и табы
$name = preg_replace('/\s\t/', '', $name);
if( strlen($name) === 0 )
die('Длина поля равна 0, значит были только табы и пробелы');
Как меняется крипторынок и к чему готовиться владельцам криптообменников
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Здравствуйте дорогие знатоки PHP, подскажите, столкнулся с такой проблемой, есть форма отправки данных, у неё скрытые input, этим скрытым inpit'aм...
Здравствуйте, Есть поле для загрузки файлов, нужно при помощи JavaScript взять файл из поля ,и передать в файл обработчик php Поле
Здравствуйте, подскажите, как можно получить нормальную (без лишнего текста) запись куки из Yii2