PHPでの登録時のパスワード隠し方
パスワード入力フィールドは通常、タイプがpasswordの入力要素であり、
入力された文字はアスタリスクで隠されます。
これは、悪意のある者がユーザーが登録する瞬間に
肩越しにパスワードを覗き見るのを防ぐために行われています。
この方法でパスワードを隠すことは確かに良いですが、 しかし問題があります - ユーザーは 自分が何を入力しているか見ることができません。 彼は何らかの文字を入力する際に間違え、 意図したものとは異なるパスワードで 登録してしまう可能性があります。これは 悲しいことです:(。なぜなら、その後サイトに ログインできなくなってしまうからです。
この問題に対する標準的な解決策があります: ユーザーにパスワード入力用の2つの入力フィールドを表示します。 最初の入力フィールドにはパスワードを入力し、 2番目の入力フィールドにはその確認、つまり 同じパスワードをもう一度入力します:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
私たちのサイトのタスクは、パスワード とその確認が一致するかどうかを確認することです。 なぜなら、この場合、ユーザーが 入力したかったものを正確に入力したと論理的に判断できるからです:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// 登録する
} else {
// 不一致のメッセージを表示する
}
}
?>
フォーム送信時にパスワードがその確認と 比較されるようにコードを修正してください。 それらが一致する場合 - 登録を続行し、 一致しない場合 - その旨のメッセージを 表示してください。