Exemple #1
0
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 "Неправильная комбинация имени пользователя и пароля";
    }
}
Exemple #2
0
/**
 * Изменяет пароль пользователя
 * @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 "Старый пароль не совпадает с паролем текущего пользователя";
}