PHP preg_match无法匹配用户名

时间:2014-11-23 13:01:45

标签: php regex

我正在构建一个小型登录系统,但我无法验证输入用户名。这是代码

if(preg_match('/^[a-zA-Z0-9_-]{3,16}$/',$username) === 0){
        header('Location: index.php?error=2');
}

我希望用户名的长度为3到16,并且只包含字母数字, - 和_字符 例如

us        - Invalid
<user     - Invalid
us<er     - Invalid
/user     - Invalid
!user     - Invalid
//user    - Invalid
user      - Valid
user-name - Valid
user_name - Valid
1user     - Valid

但是,如果输入的用户名无效,上面的代码不会将我返回索引页面。

以下是第一条评论后代码的样子:

$username = $_POST['login'];
$password = $_POST['password'];

//Match username which contains letters and number and has length
//3 to 16 characters
if(!preg_match('/^[a-zA-Z0-9_-]{3,16}$/',$username)){
        header('Location: index.php?error=2');
}

0 个答案:

没有答案