単純なフォームがあるとしましょう。
<form action="register.php" method="post">
<label>Password:</label>
<?php if (isset($errors[1])) echo $errors[1]; ?> <- Displays error message if there is one
<input type="password" name="user_pass" />
<label>Confirm Password:</label>
<input type="password" name="user_pass_confirm" />
<input type="submit" />
</form>
$user_pass = $security->encrypt($_POST['user_pass']);
$user_pass_confirm = $security->encrypt($_POST['user_pass_confirm']);
$registration->form($user_pass, $user_pass_confirm);
そしてクラス:
if (empty($user_pass)) {
$errors[1] = 'Passwords required';
} else if ($user_pass != $user_pass_confirm) {
$errors[1] = 'Passwords don't match';
}
//if error array empty, create member
私がやろうとしているのは、パスワードを検証して必要なものにし、それらが一致することを確認することです。また、preg_match正規表現を追加して、少なくとも8文字の長さであることを確認します。
私の問題は、パスワードを送信する前にすでに暗号化されていることです(暗号化されていないパスワードは投稿しないでください。間違っている場合は、訂正してください)。
そして、クラスがエンコードされた文字列を取得すると、それを検証するために何もできなくなります。フィールドを暗号化/ソルトバージョンの何もないものと比較することで空をチェックできますが、それはそれを行う方法ではないと確信しています。
パスワードを検証するための標準的な手順や、ソリューションに関する提案を教えてもらえますか?
どうもありがとう