@deepprod

Как переделать авторизацию пользователей?

Здравствуйте имеется авторизация без mysql логин и пароль храниться в константах. Как мне переделать, что бы логин и пароль брать из бд. Структура и подключение к бд есть. Помогите не опытному.

Вот код авторизации php:

function isAdmin($login = false, $password = false) {
		if (!$login) $login = isset($_SESSION["login"])? $_SESSION["login"] : false;
		if (!$password) $password = isset($_SESSION["password"])? $_SESSION["password"] : false;
		return mb_strtolower($login) === mb_strtolower(ADM_LOGIN) && $password === ADM_PASSWORD;
	}
	
	function login($login, $password) {
		$password = hashSecret($password);
		if (isAdmin($login, $password)) {
			$_SESSION["login"] = $login;
			$_SESSION["password"] = $password;
			return true;
		}
		return false;
	}
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 2
@noeer
В общем случае как-то так
function isAdmin($login = false, $password = false) {
	global $pdo;
	$stmt = $pdo->prepare('SELECT * FROM `users` WHERE `login` = :login AND `password` = :password');
	$stmt->execute(array(
		':login' => $login,
		':password' => $password,
	));
	if($stmt->rowCount() == 1) {
		return true;
	}
	return false;
}
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
1) нельзя хранить пароли в открытом виде, используйте password_hash()
2) Для хеширования паролей хорошей практикой считается предварительно "соленые" значения
3) для проверки используйте password_verify(), алгоритм простой и легко гуглится, например вот здесь есть одна из реализаций
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽