Итак, я пытался изменить хэш-функцию с md5 на sha256. Он отлично работает на этапе регистрации, новый пользователь создается с новой хэш-функцией, примененной к паролю.
Хотя, когда я пытаюсь войти в систему, я получаю сообщение об ошибке. Ошибка — это то, что я положил в код, большая проблема здесь, почему это вообще происходит.
У меня есть следующий код:
$sql = "SELECT * FROM username WHERE username='$u' AND activated='1' LIMIT 1";
$user_query = mysqli_query($db_conx, $sql);
// Now make sure that user exists in the table
$numrows = mysqli_num_rows($user_query);
if($numrows < 1){
echo "That user does not exist or is not yet activated, press back";
exit();
}
Я ничего не изменил здесь, но когда я вхожу сейчас, я вместо того, чтобы перейти на страницу, на которую я должен прийти, я получаю сообщение об ошибке: «Этот пользователь не существует или еще не активирован, нажмите назад ». Я повторил переменную $ numrows, и она показывает, что $ numrows равен нулю. Я понятия не имею, почему это произошло, потому что я только изменил хэш-функцию.
Однако, когда я нажимаю обратно в браузере, я попадаю на страницу, на которую я должен был прийти в первую очередь, и переменная $ numrows изменяется на 1.
Было бы очень хорошо, если бы кто-нибудь захотел объяснить мне это, поскольку я понятия не имею, почему переменная $ numrows внезапно равна нулю, а не> 0.
С уважением
РЕДАКТИРОВАТЬ
Я с помощью GolezTrol пришел к выводу, что либо $ numrows, либо $ user_query ложно. Теперь вопрос меняется на то, почему это происходит.
EDIT2
После дальнейшего тестирования я могу утверждать, что это не $ user_query, который является ложным, а только $ numrows.
Задача ещё не решена.
Других решений пока нет …