У меня есть следующий код PHP, который пытается проверить сложность пароля, однако, когда я его запускаю, я не получаю правильные результаты (см. Ниже)
while (odbc_fetch_row($rs)) {
$r1='/[A-Z]/'; //Uppercase
$r2='/[a-z]/'; //lowercase
$r3='/[!@#$%^&*()-_=+{};:,<.>]/'; // whatever you mean by 'special char'
$r4='/[0-9]/'; //numbers
if (!preg_match_all($r4, odbc_result($rs,"U_password"))) {
echo "Password doesn't contain numbers: " . odbc_result($rs,"U_Mailbox") . "@" . odbc_result($rs,"U_Domain") . " " . odbc_result($rs,"U_password") . "<br>\n";
}
if (!preg_match_all($r2, odbc_result($rs,"U_password"))) {
echo "Password doesn't contain lowercase letters: " . odbc_result($rs,"U_Mailbox") . "@" . odbc_result($rs,"U_Domain") . " " . odbc_result($rs,"U_password") . "<br>\n";
}
if (!preg_match_all($r1, odbc_result($rs,"U_password"))) {
echo "Password doesn't contain uppercase letters: " . odbc_result($rs,"U_Mailbox") . "@" . odbc_result($rs,"U_Domain") . " " . odbc_result($rs,"U_password") . "<br>\n";
}
}
Вывод:
Пароль не содержит строчных букв: jason@domain.com нижний регистрpw
Пароль не содержит достаточных цифр: service@domain.com 8B_dip + 3
Пароль не содержитсодержать заглавные буквы: barry@domain.com Barrywidg @ t1o
(Кстати, пароли выше НЕ являются реальными. Я просто поменял строчные буквы на другие строчные буквы и заглавные буквы на другиезаглавные буквы и цифры для других чисел.)
Так что я озадачен тем, почему мой код не работает.Кто-нибудь еще может помочь?
Спасибо, Брэд