Регистрация нового пользователя
Регистрация пользователя обеспечивается методом registration в контроллере users. Внешний вид формы регистрации: Рисунок 9 Требование уникальности E-mail адреса проверяется в библиотеке From Validation, путем указания соответствующего ключа в конфигурации проверяемого поля: // Определяем правила проверки $config = array( array( 'field' => 'email', 'label' => 'E-mail', 'rules' => '...|is_unique[users.email]' ) ... Обработка ошибок осуществляется по такому же принципу, что и при процессе входа в систему. Внешний вид формы с ошибками ввода: Рисунок 10 Вставка данных о новом пользователе происходит путем формирования массива, который в дальнейшем передается в метод insert модели db_model, в которой определены наиболее общие методы взаимодействия с БД: if ( $id = $this->db_model->insert(USERS_TABLE, $user) ) { $this->session->set_userdata("user_id", $id); $this->setMessage("Вы успешно зарегистрированы", "users/user/$id"); } else { $this->setError("Произошла ошибка при регистрации"); } Редактирование профиля Редактирование профиля контролируется методом edit контроллера users. Он загружает форму редактирования профиля: Рисунок 11 Перед загрузкой формы, происходит проверка данных сессии, и, если пользователь не авторизован, то выводится стандартная ошибка, возникающая при неудачной проверке данных авторизации: Рисунок 12 В остальном же, процесс изменения информации мало чем отличается от процесса регистрации, за исключением того, что вместо вставки новых данных происходит их обновление: if ( $id = $this->db_model->update( USERS_TABLE, $user, array("id" => $this->user['id'])) ) { $this->setMessage( "Информация изменена", "users/user/" . $this->user['id'] ); } else $this->setError("Информация не изменена"); Удаление профиля Удаление профиля происходит в методе delete контроллера users. Физически это происходит установкой флага active таблицы users в 0. Ссылка на удаление расположена на странице редактирования профиля в боковой панели: Рисунок 13 Код обработчика удаления: /** * Деактивация профиля */ public function delete() { $this->checkAuthorization();
if ( $this->db_model->update( USERS_TABLE, array('active'=>'0'), array('id' => $this->user['id'])) ) { $this->setMessage("Профиль удален", "users/logout"); } else { ... } } После удаления аккаунта, войти в него уже невозможно. При попытке входа система выдает следующую ошибку: Рисунок 14 Восстановление пароля Восстановление пароля обрабатывается методом restore, который принимает E-mail адрес пользователя, генерирует новый пароль и отсылает его на введенный E-mail.
Форма восстановления пароля имеет вид: Рисунок 15 Если введенный E-mail имеется в базе данных, то новый пароль отправляется на него: иначе система выдает ошибку При удачном восстановлении на указанный ящик придет сообщение следующего содержания: Уважаемый Павел, ваш новый пароль 1401096180 Данный механизм восстановления забытого пароля является более чем примитивным, но для учебных целей это вполне достаточно.
Категории Категории управляются классом-контроллером categories, который имеет следующие функции, представленные методами:
Для манипулирования данными в БД используется модель categories_model, содержащая несколько специфических методов для категорий. Структура контроллера categories <?php
/** * Контроллер категорий */ class Categories extends MY_Controller { /** * Количество категорий на странице */ private $_categories_per_page = 2;
public function __construct() { parent::__construct(); }
/** * Вывод списка категорий определенного пользователя */ public function user( $user_id, $page = 1 ) {}
/** * Добавление новой категории */ public function add() {}
/** * Редактирование категории */ public function edit( $category_id ) {}
/** * Удаление категории */ public function delete( $category_id ) {} }
Популярное: Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (739)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |