我试图让我的网站要求用户(当他们创建帐户时)包含 3/4 密码要求。我希望密码包含的要求是:1. 数字 2. 小写字母 3. 大写字母 4. 特殊符号/字符。这是我到目前为止的代码:
$passwordspecs='^(?=.{8, 20})(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$ | ^(?=.{8, 20})(?=.*[a-z])(?=.*[A-Z])(?=.*[@$#£&]).*$ | ^(?=.{8, 20})(?=.*\d)(?=.*[a-z])(?=.*[@$#£&]).*$ | ^(?=.{8, 20})(?=.*\d)(?=.*[A-Z])(?=.*[@$#^£&]).*$';
if(preg_match('/$passwordspecs/', $_POST['password'])) {
$results="INSERT INTO Operator (Username, Password, PermissionLevel)
VALUES ('$_POST[username]', '$_POST[password]', '$_POST[plevel]')";
echo "One user added!";
}
else {
echo '<script type="text/javascript">';
echo 'alert("Password needs to contain 3/4 requirements!")';
echo '</script>';
}
我终于能够摆脱出现的错误消息,但现在无论我输入 3/4 还是 4/4 密码要求,它都会直接进入 else 语句,我会收到警报消息。关于出了什么问题的任何想法,或者可能有更简单的方法来做到这一点?