スクリプトから目的の効果が得られません。パスワードに A ~ Z、a ~ z、0 ~ 9、および特殊文字を含めたい。
- AZ
- から
- 0-9 >= 2
- 特殊文字 >= 2
- 文字列の長さ >= 8
したがって、ユーザーに少なくとも 2 つの数字と少なくとも 2 つの特殊文字を使用するように強制したいと考えています。私のスクリプトは動作しますが、数字または文字を連続して使用する必要があります。私はそれをしたくありません。たとえば、パスワード testABC55$$ は有効ですが、それは望ましくありません。
代わりに、test$ABC5#8 を有効にしたいと考えています。したがって、基本的に数字/特殊文字は同じまたは差分にすることができます->が、文字列内で分割する必要があります。
PHP コード:
$uppercase = preg_match('#[A-Z]#', $password);
$lowercase = preg_match('#[a-z]#', $password);
$number = preg_match('#[0-9]#', $password);
$special = preg_match('#[\W]{2,}#', $password);
$length = strlen($password) >= 8;
if(!$uppercase || !$lowercase || !$number || !$special || !$length) {
$errorpw = 'Bad Password';