Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПвБД_Курсовик_ОрищенкоТС.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
895.63 Кб
Скачать

Просмотр списка пользователей

Просмотр списка пользователей контролирует метод index(), в который передается значение текущей страницы. Внешний вид страницы изображен на Рисунке 1:

Рисунок 1

Алгоритм вывода списка следующий:

  1. Определение текущей страницы

  2. Определение общего количества страниц с помощью значения свойства $_users_per_page

  3. Корректирование значения полученной страницы

  4. Выборка данных о пользователях согласно количеству отображаемых пользователей и смещению в выборке

  5. Загрузка вида с полученными данными

Формируемые ссылки в списке имеют вид: /users/user/:id

Выборка происходит путем вызова метода модели users_model – get_users, который выполняет запрос к базе данных:

/**

* Получение списка пользователей

*/

public function get_users( $where, $limit = 0, $offset = 0 )

{

$this->db->where($where);

$this->db->limit($limit, $offset);

$this->db->order_by("name");

$q = $this->db->get(USERS_TABLE);

return $q->result_array();

}

Для обращения к базе данных используется библиотека Active Record, которая предоставляет удобный интерфейс для формирования запросов.

Просмотр профиля пользователя

Просмотр профиля отдельного пользователя происходит вызовом метода user с идентификатором пользователя. Внешний вид приведен на рисунке 2.

Рисунок 2

Полученное значение номера проверяется, производится выборка из таблицы users, и, если пользователь не найден, то выводится ошибка, например:

Рисунок 3

Также пользователь может быть заблокирован, тогда выводится следующая ошибка:

Рисунок 4

Метод модели get_user, возвращающий информацию о пользователе, имеет следующий код:

/*

* Получение информации о пользователе

*/

public function get_user( $where = array() )

{

$user = $this->db

->get_where(USERS_TABLE, $where)

->result_array();

return $user ? $user[0] : false;

}

В зависимости от роли клиента, боковая панель может быть трех видов:

Пользователь-гость

Обычный пользователь

Пользователь-владелец

Вход пользователя в систему

Внешний вид страницы:

Рисунок 5

Вход пользователя контролируется методом login контроллера users:

/**

* Вход пользователя в систему

*/

public function login()

{

// Принимаем данные формы

if ( $this->input->post("submit") )

{

// Проверка введенных данных

}

// Загрузка вида

$this->load->view('view');

}

На этом этапе используется механизм валидации данных, реализованный в библиотеке Form Validation, алгоритм которой следующий:

  1. Определение правил:

$config = array(

array(

'field' => 'email',

'label' => 'E-mail',

'rules' => 'required'

)

...

);

  1. Инициализация класса Form Validation:

$this->form_validation->set_rules

$this->form_validation->set_rules($config);

  1. Запуск механизма валидации:

// Проверяем данные формы

if ( $this->form_validation->run() == true )

{

...

}

Если валидация не прошла успешно, то в форму входа выводятся обнаруженные ошибки:

Рисунок 6

Либо, если ошибки не связаны с валидацией:

Рисунок 7

Идентификация пользователя в системе осуществляется путем использования сессий и cookies. При успешном входе в переменную сессии user_id устанавливается значение id пользователя в таблице users. При инициализации любого контроллера происходит считывание информации из базы данных в свойство user родительского контроллера, которое доступно из любой точки системы. Это хоть и влечет увеличение нагрузки на сервер, но также обеспечивает актуальность данных в пределах сеанса входа.

После удачного входа станет доступно пользовательское меню:

Рисунок 8