twofolls95
@twofolls95

Как паравильно реализовать запросы к БД?

Есть таблица users, мне нужно реализовать вход в административную часть сайта с помощью БД.

Есть другая, рабочая реализация для админа:

function admin(){
	session_start();
	$admin = 'admin';
	$password = 'telegram';
	if(isset($_POST['submit'])){
		if($admin == $_POST['login'] && $password == $_POST['password']){
			$_SESSION['admin'] = $admin;
			header("Location: modules/admin/admin.php");
			exit;
		}
	}
}


Но мне надо с помощью БД.
Как правильно это реализовать, а также как реализовать вход для пользователей?

В теории я вижу это так:
- запрос в БД к полю login и password, проверка принятых значений от формы авторизации с записями в таблице, а точнее со столбцами (login, password), если есть такие, то создавай сессию.

таблица users
5d8c71f7e2dc5276440960.png
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ответы на вопрос 3
Fernus
@Fernus
Техник - Механик :)
Может имеет смысл завести ещё одно поле в БД, например, "is_admin" с флагом 0 или 1...
Тогда будет возможность иметь хоть сколько админов...

P.S.: Вообще от ситуации и задачи зависит...способов уйма...
Ответ написан
Комментировать
@IgorNoskov
Добавьте в таблицу роли. Храните в базе данных не пароль, а хэш пароля, например, созданный с помощью функции password_hash(). Никогда не храните пароли напрямую в базе данных, не используйте устаревшие методы хэширования для хранения паролей (например алгоритм md5).

При входе в административную панель:
1. извлекайте по логину данные пользователя;
2. с помощью функции password_verify() сверяйте пароль.

Здесь https://www.php.net/manual/ru/function.password-ha... читайте о функции password_hash(), и о том, как проверять пароль.
Ответ написан
Комментировать
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Вы всё правильно видите. То, что вы предлагаете - это базовый способ авторизации.
Если вы уверены, что никто вас взламывать не будет - то можете спокойно использовать его. Если же такой уверенности нет, можете вникнуть в токены авторизации и JWT. Технология авторизации намного сложнее, но и ломать вас будет сложнее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект
10 мая 2024, в 23:33
2500 руб./за проект