password_verify возвращается каждый раз, когда ложь - PullRequest
0 голосов
/ 18 апреля 2020

Эй, ребята, я не знаю, почему, но эта функция возвращает все время ложно, и если пароль верен, он возвращает ложь, может ли кто-нибудь мне помочь?

вот мой код (функция входа в систему)

        public static function login($uname, $input){

        $db = DB::connect();

        $stmt = $db->prepare("SELECT * FROM sys_user WHERE name = :name");
        $stmt->execute([
            "name" => $uname
        ]);

        if($stmt->rowCount() != 1){
            http_response_code(500);
            exit;
        }

        $user = $stmt->fetch();

        $pwd_hashed = $user["password"];

        $trimmed_Hash = trim($pwd_hashed);
        $trimmed_input = trim($input);

        if(password_verify($trimmed_input, $trimmed_Hash)){
            $_SESSION["userid"] = $user["id"];
            $_SESSION["steamid"] = $user["steamid"];
            echo "TRUE";
            return true;
        } else {
            return false;
        }

    }

Функция установки пароля

        public static function update($uid, $pwd){

        $pwd_hashed = password_hash($pwd, PASSWORD_DEFAULT);

        try {
            DB::query("UPDATE sys_user SET password = :passwd WHERE id = :uid", [
                "passwd" => $pwd_hashed,
                "uid" => $uid
            ]);
        } catch (PDOException $e){
            echo $e->getMessage();
        }


        return true;
    }

Я надеюсь, что кто-то может мне помочь, спасибо

...