サイトを入力するために複数のユーザーを作成する必要があります(データベースなし)。PHPでpassword_verifyを使用して複数のユーザーとのログインを保護するにはどうすればよいですか?
たとえば、PHPでユーザとパスワードの組み合わせをpassword_hash
で生成したとします。 (方法が見つかりましたhere)
$userhash = password_hash('exampleusername', PASSWORD_BCRYPT, $useroptions);
$passhash = password_hash('examplepass', PASSWORD_BCRYPT, $pwoptions);
私はハッシュファイルをどこかに保存しました。
$hasheduser = file_get_contents("private/user");
$hashedpass = file_get_contents("private/pass");
フォームから$_POST
のハッシュに対してユーザー名とパスワードの組み合わせを設定します。
$userhash = password_hash($_POST['user'], PASSWORD_BCRYPT, $useroptions);
$passhash = password_hash($_POST['pass'], PASSWORD_BCRYPT, $pwoptions);
ユーザー/パスのコンボが正しい場合、セッションが設定され、確認されます。
if (
(password_verify($_POST['user'], $hasheduser))
&& (password_verify($_POST['pass'], $hashedpass))
) {
session_start();
$_SESSION['validuser'] = $_POST['user'];
}
私の質問は、同じコードを常に複製せずに複数のユーザー名とパスワードを作成するにはどうすればよいですか?
if (
(password_verify($_POST['user'], $hasheduser))
&& (password_verify($_POST['pass'], $hashedpass))
) elseif (
(password_verify($_POST['user'], $hasheduser2))
&& (password_verify($_POST['pass'], $hashedpass2))
)
ではなく、複数のelseif
文のログイン画面を入力するユーザーをループする方法はあります...
$hasheduser = file_get_contents("private/user");
$hashedpass = file_get_contents("private/pass");
$hasheduser2 = file_get_contents("private/user2");
$hashedpass2 = file_get_contents("private/pass2");
は、複数のユーザを確認しています...複数のユーザーを作りますか?
助けてください。
おそらく私は、ユーザ/パスのコンボを配列に入れる必要があると思っています...(誤った試みです)。
$users = array(
file_get_contents("private/user1") => file_get_contents("private/pass1"),
file_get_contents("private/user2") => file_get_contents("private/pass2")
);
foreach ($users as $key => $value) {
if ((password_verify($username, $key)) && (password_verify($pass,$value))) {}
}
しかし、ログインフォームは無限に複製されます。
ありがとうございました、ありがとうございました。
追記:理由として、特定の理由がありますあなたはデータベースを使用していませんか? –
具体的な理由はなく、3人または4人のユーザーしかいないことになります。 –
)なぜデータベースではないのですか?データベースを使用します。それがデータベースの目的です。 b)なぜユーザー名をハッシュしていますか? c)htaccessで 'private'を保護しない限り、誰でもハッシュデータを取得できます。それは良いことではありません。 d)*関数*について聞いたことがありますか? e)データ(またはjson_encodeの例)をシリアル化して* one *ファイルに格納すると、多くの問題を解決できます。 –