Мегаобучалка Главная | О нас | Обратная связь


Регистрация нового пользователя




Регистрация пользователя обеспечивается методом 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, который имеет следующие функции, представленные методами:

Действие Метод
Просмотр категорий пользователя user
Добавление новой категории add
Редактирование категории edit
Удаление категории delete

Для манипулирования данными в БД используется модель 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-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (567)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)