Как проверить наличие пробелов и специальных символов - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь закодировать форму для входа в систему, используя php, чтобы проверить это. Но я не могу заставить его проверить, есть ли у меня какие-либо пробелы и специальные символы для имени пользователя. Я пытался использовать [\ W] +, но это не сработало.

       <?php

        $usernerr = "";
        $passwerr = "";
        $usern = "";
        $passw = "";
        $pattern = '/[\'\/~`\!@#\$%\^&\*\(\)_\-\+=\{\}\[\]\|;:"\<\>,\.\?\\\]/';
        if($_SERVER['REQUEST_METHOD'] == 'POST')
        {   
            if(empty($_POST['uname']))
            {
                $usernerr = "*Please add a username please!";
            }
        else
        { 
            $usern = clearInput($_POST['uname']);
            if(!preg_match('/s/', $usern) || !preg_match($pattern, $usern))
            {
                $usernerr = "*Username have only letters and numbers!";
            }
            $usernerr = "";
        }

        if(empty($_POST['psw']))
        {
            $passwerr = "*Please add a password please!";
        }
        else
        { 
            $passw = clearInput($_POST['psw']);
            $passwerr = "";
        }
    }   

    function clearInput($input)
    {
        $input = trim($input);
        $input = stripslashes($input);
        $input = htmlspecialchars($input);
        return $input;
    }
    ?>

1 Ответ

0 голосов
/ 10 ноября 2018

Учитывая сообщение об ошибке, которое вы написали, вы усложняете себя.

Вместо поиска по списку символов, которые не являются буквенно-цифровыми, ищите только буквенно-цифровые символы. Попробуйте использовать этот шаблон и не отменяйте условие.

$pattern = "/^[a-zA-Z0-9]+$/";
// Some code...
if(preg_match($pattern, $usern))
// ^-------------------------------Notice the changes
{
    //Username is valid
}

Описание рисунка:

^ с начала

[a-zA-Z0-9] поиск по альфа-номеру

+ 1 или более раз

$ до конца

/^[a-zA-Z0-9]+$/ можно заменить на /^[[:alnum:]]+$/ или /^[a-z\d]+$/i, которые дают тот же эффект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...