2014-02-11 5 views
2

У меня есть поле ввода, для которого требуется имя пользователя. Сценарий заключается в том, как я могу запретить пользователю предоставлять пробелы или пробелы в этом поле? Я уже добавил required в поле ввода, чтобы я мог запретить пользователю оставлять его пустым.Как проверить, являются ли данные пустыми или пустыми только в PHP

<input type="text" name="username" required> 

но что, если пользователь помещает пробельных или столько пробелов, сколько он может, есть ли возможный способ я могу обнаружить это и бросить ошибку пользователю?

в моем файле PHP я уже

if(empty($_POST['username'])){ 
echo "Username should not be empty!"; 
} 

, но это не из-за непечатаемых пользователи попали в поле ввода.

+0

'пустой()' почти бесполезна для таких вещей. 'empty (0)' истинно. Вместо этого попробуйте strlen() == 0. –

ответ

2

Вы могли бы сделать, как это.

if(isset($_POST['username'])) 
{ 
    if(strlen(trim($_POST['username']))<=0){ 
    echo "Username should not be empty!"; 
    } 
} 
+0

В этом случае вызов 'empty()' не нужен, '' strlen (trim()) 'вызовов достаточно. Вы должны либо сделать 'empty (trim())', либо 'strlen (trim())' – Mark

+0

@RainFromHeaven, да, изменил его. –

+2

Не должно быть '== 0', или я что-то упускаю? Как длина строки будет меньше 0? – Danny

2

Вы можете использовать trim и strlen PHP функции

+0

Позвольте мне попробовать украшение .. но strlen? я так не думаю .. это будет просто подсчитать количество символов, включая пробелы. – user3258603

+0

@ user3258603 'strlen (trim ($ _ POST ['foo']))' – Mark

+0

О, извините, если я неправильно понял ваш ответ. я думаю, что ваша идея такая же с @Shankar. Я никогда не думал, что можно объединить два. Прости. – user3258603

0

Я думаю, str_replace() - это все, что вам нужно. Или вы можете использовать javascript для предотвращения ввода пробелов в поле ввода.

<?php 
$s = str_replace(' ', '', $_POST['username']); 
?> 

Если вы собираетесь использовать trim(), не забывайте о rtrim()

1

и можно использовать $ .trim() функция JQuery, прежде чем отправить форму.

var nowhitespace = $.trim($("#input").val()); 
1

Попробуйте это ....

if(trim($_POST['username']) == ""){ 
    echo "Username should not be empty!"; 
} 
Смежные вопросы