Я получаю "Вызов функции-члена на нуль", хотя переменные не являются нуль

Я получаю сообщение "Неустранимая ошибка: необработанная ошибка: вызов функции-члена checkCode() для нулевого значения в трассировке стека: #0:resetPassword2FA(Object(mysqli), Array) #1 {main} брошено" "

Это мой код:

//Load 2FA
require '../2fa/vendor/autoload.php';
include_once '../2fa/vendor/sonata-project/google-authenticator/src/FixedBitNotation.php';
include_once '../2fa/vendor/sonata-project/google-authenticator/src/GoogleAuthenticator.php';
$g = new \Google\Authenticator\GoogleAuthenticator();

function resetPassword2FA($link, $data) {
$address = $data["address"];
$code = $data["key"];
$stmt = $link->prepare("SELECT 2fa FROM account WHERE address = ?");
$stmt->bind_param("s", $address);
if ($stmt->execute()) {
    $stmt->store_result();
    if ($stmt->num_rows() == 1) {
        $stmt->bind_result($db2fa);
        $stmt->fetch();
        $stmt->close();
        $code = str_replace(' ', '', $code);
        echo $code;
        echo $db2fa;
        if ($g->checkCode($db2fa, $code)) {
            return "success";
        } else {
            return "Incorrect 2FA code given";
        }
    } else {
        return "The account does not exist";
    }
} else {
    return "An Error(089) occured. Please try again later";
}
}

я имею $data["address"] = "t8Eg5"; $data["key"] = "3242"; это устанавливает переменные, и оба эха отражают то, что они должны выводить, таким образом я не уверен, почему php говорит, что я вызываю функцию на NULL.

Может ли кто-нибудь помочь мне?

0 ответов

Другие вопросы по тегам