Я получаю "Вызов функции-члена на нуль", хотя переменные не являются нуль
Я получаю сообщение "Неустранимая ошибка: необработанная ошибка: вызов функции-члена 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.
Может ли кто-нибудь помочь мне?