Код такой:
$user = R::find('user', 'login = ?', array($data['login']));
if ($user) {
if(password_verify($data['password'], $user->password)) {
echo 'ok';
}
else {
echo = 'Данные введены неверно';
}
}
else {
echo = 'Пользователь не найден';
}
Он проверяет введёный логин и если аккаунт существует он проверяет пароль, а если верный и пароль то выводит "ok". Я создал в базе данных аккаунт с ником admin и паролем 123. Так вот пользователя он находит, но говорит что пароль введён не верно (выполняется 1-ый по счёту else).
Почему он видит логин, но не видит пароль? Что не так?(
Вам нужно использовать функции password_hash и password_verify в связке. Когда пользователь при регистрации задаёт пароль вы должны сгенерировать на его основе хэш:
$hash = password_hash($password, PASSWORD_DEFAULT);
Этот хэш вместе с логином нужно нужно занести в базу данных. Заметьте, что нельзя хранить пароль в открытом виде, т.к. это небезопасно. Поэтому мы используем хэширование пароля.
Когда пользователь при входе вводит логин и пароль, мы должны выбрать в базе данных запись, соответствующую введённому логину (если она есть). После этого мы проверяем? соответствует ли пароль хэшу, хранящемуся в базе данных:
if(password_verify($password, $hash)) {
// Верный пароль
} else {
// Неверный пароль
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости