function user_login($mysqli, $login, $password) { // Получим данные пользователя $user_data = user_get_data_by_login($mysqli, $login); // Сравниваем пароли if ($user_data['password'] === md5(md5($password))) { // Пароли сошлись // Генерируем случайное число и шифруем его $hash = md5(generate_code(10)); // Запрос $query = "UPDATE users SET hash='{$hash}' WHERE id='{$user_data['id']}'"; // Записываем в БД новый хеш авторизации и ID if ($result = $mysqli->query($query)) { // Запись прошла успешно // Запишем событие в журнал event_add($mysqli, 15, "Пользователь принял смену.", $_POST['login']); // Запишем в куки id setcookie("id", $user_data['id'], time() + 60 * 60 * 24 * 30); // и хэш setcookie("hash", $hash, time() + 60 * 60 * 24 * 30); // Переадресовываем на главную header("Location: index.php"); exit; // Сообщим об успешном входе return "Добро пожаловать"; } return "Ошибка записи в БД"; } else { return "Неправильная комбинация имени пользователя и пароля"; } }
/** * Изменяет пароль пользователя * @param mysqli $mysqli * @param string $login * @param string $pass * @param array $current_user Параметры текущего пользователя */ function user_replace_password($mysqli, $login, $old_pass, $new_pass, $user) { // Экранируем спецсимволы $login = $mysqli->real_escape_string($login); $old_pass = $mysqli->real_escape_string($old_pass); $new_pass = $mysqli->real_escape_string($new_pass); // Получим данные пользователя $user_data = user_get_data_by_login($mysqli, $login); // Проверим совпадают ли пароли if ($user_data['password'] === md5(md5(trim($old_pass)))) { // Совпадают // Сменим пароль пользователя return user_update_pass($mysqli, $login, $new_pass, $user); } // Пароли не совпали return "Старый пароль не совпадает с паролем текущего пользователя"; }