私はこれを、数字、文字、および !@#$% 記号のみで、8 ~ 20 文字の長さである必要があるパスワードに使用しています。
if (!preg_match('/^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{8, 20}$/', $_POST['password'])) {
$errors[] = true;
$_SESSION['error'] .= '<div class="messages status_red">Password must be 8-20 long, A-Z, 0-9, !@#$% only.</div>';
}
ただし、基準を満たしているかどうかに関係なく、エラーが返されます。
error_reporting メッセージも表示されません。
この理由は何ですか?