現在、次のphpコードに問題があります。
if ($result['username'] == $_POST["name"]) {
$bcrypt = new Bcrypt(10);
$password = $_POST["password"];
$hashdb = $result['password'];
$hash = $bcrypt->hash($password);
$isGood = $bcrypt->verify($password, $hashdb);
if ($isGood == 1) {
if($result['active'] == 1) {
$_SESSION["login"] = $result['firstname']." ".$result['lastname'];
$_SESSION["functionlevel"] = $result['functionlevel'];
header("location:startpagina.php");
} else {
echo 'Account blocked or not activated';
}
} else {
echo 'Password not correct';
}
} else {
echo 'Username not correct';
}
パスワードのハッシュと検証にAndrewMoorebcryptクラスを使用しています。何らかの理由で、私のifステートメントは失敗したようで、2番目のif
ステートメントの後で突然停止します。これが失敗した場合は、パスワードが正しくないオプションが表示されます。しかし、それが真実である場合、それは3番目に続きませんif
。
私は2番目のようにさまざまなオプションを試しましたif
:
if ($isGood){
if ($isGood == true){
if ($isGood !== false){
if ($isGood !== 0){
しかし、ステートメントが満たされた場合、どういうわけかこれらのどれも継続しないようです。に進む代わりに、ログインページが再度表示されstartpagina.php
ます。ログインページは、bcryptを実装せずに、2つのmd5ハッシュを相互にチェックするだけで正常に機能しました。
誰かが私が問題を見つけようとするのを手伝ってもらえますか?