Esempio n. 1
0
/**
 * Добавляет нового пользователя в базу или редактирует профиль существующего пользователя.
 *
 * @param array $data данные.
 * @param array $errors ошибки, возникшие в ходе выполнения операции.
 * @return array|bool возвращает пользователя или false в случаи критической ошибки.
 */
function userSave(array $data, array &$errors = null)
{
    $id = isset($data['id']) ? (int) $data['id'] : null;
    $user = sanitize($data, userSanitizeRules(), $errors);
    if ($errors) {
        return $user;
    }
    if (!$id) {
        $storedUser = storageGetItemBy(ENTITY_USER, 'username', $user['username']);
        if ($storedUser) {
            $errors['exists'] = 'Пользователь с таким именем уже существует!';
            return $user;
        }
        $user['created'] = mktime();
    }
    if ($user['password'] != $data['password_repeat']) {
        $errors['password'] = '******';
        return $user;
    }
    $user['password'] = password_hash($user['password'], PASSWORD_DEFAULT);
    $status = storageSaveItem(ENTITY_USER, $user);
    if (!$status) {
        $errors['db'] = 'Не удалось записать данные в базу';
    }
    return $user;
}
function saveUser($data, &$errors = null)
{
    $id = isset($data['id']) ? $data['id'] : null;
    $user = $data;
    //азультат после очистки и валидации
    if ($errors) {
        return $user;
    }
    // $user['update'] = mktime();
    if (!$id) {
        $storedUser = storageGetItemBy(ENTTY_USER, 'login', $user['login']);
        if ($storedUser) {
            $errors['exists'] = 'Пользователь с таким именем уже существует!';
            return $user;
        }
        $user['created'] = mktime();
    }
    if ($user['password'] != $data['wpassword']) {
        $errors['password'] = '******';
        echo 'Введенные пароли не совпадают';
        return $user;
    }
    // $user['password'] = password_hash($user['password'], PASSWORD_DEFAULT);
    $status = storageSaveItem(ENTTY_USER, $user);
    if (!$status) {
        $errors['db'] = 'Не удалось записать данные в базу';
    }
    return $user;
}
function getUserBy($attribute, $value)
{
    return storageGetItemBy(ENTITY_USER, $attribute, $value);
}