Система регистрации и авторизации пользователей на сайте

Разработка средствами языка PHP и Фреймворка Yii системы регистрации и аутентификации пользователей на сайте. Проектирование приложения с помощью языка UML, построение диаграммы прецедентов. База данных приложения. Страница регистрации пользователей.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 15.09.2014
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Оглавление

ОПИСАНИЕ БАЗЫ ПРАКТИКИ

ЗАДАНИЕ НА ПРАКТИКУ

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Язык программирования php

Возможности Yii Framework

Модель-Представление-Контроллер (MVC)

ПРОЕКТИРОВАНИЕ ПРИЛОЖЕНИЯ

Программная реализация

База данных приложения

Интерфейс приложения

ТЕСТИРОВАНИЕ ПРИЛОЖЕНИЯ

СПИСОК ЛИТЕРАТУРЫ

ОПИСАНИЕ БАЗЫ ПРАКТИКИ

Компания "Диджитал медиа" - это компания с более чем десятилетним стажем. На протяжении этого срока разрабатывались сложные и высоконагруженные проекты в области интернет-рекламы, хранения и загрузки файлов, мультимедиа и поисковых систем. Преимущественно анализ и разработка происходили в зарубежном сегменте, ввиду опережения развития западного интернет-сообщества. В последнее время компания активно осваивает СНГ сегмент интернет-рынка. У компании 2 офиса в Брянске. Один работает над заграничными проектами, второй -- над новым проектом. Один офис есть также в США. В настоящий момент компания занимается разработкой собственной СРА-платформы.

CPA - это "cost per action", в переводе “плата за действие”. Это метод оплаты рекламы, при которой вы получаете деньги за то, что приведенный вами клиент выполняет какие-то полезные действия. Другими словами вы генерируете трафик (с сайтов, поисковых систем, социальных сетей, емейл трафик, PPC и т.д.) и направляете потенциальных клиентов на страницы с предложениями (офферами) от рекламодателей, если клиент выполняет полезное действие указанное рекламодателем вы получает за это оплату.

Одним из наиболее ярких проектов компании является файлообменник uploading.com, который долго время занимал 2ое место в мире по посещаемости и был одним из первых файлообменников интернета.

Бренд -- 7offers.ru. На этом проекте планируется порядка 2-3 тысяч партнеров со своими рекламными предложениями. Порядка 100 тысяч пользователей со своими сайтами, арбитражными системами, социальными сетями и другими источниками трафика.

ЗАДАНИЕ НА ПРАКТИКУ

Разработать средствами языка PHP и Фреймворка Yii, систему регистрации и аутентификации пользователей на сайте.

Для хранения данных о пользователе использовать базу данных.

При регистрации пользователя проверять логин и email на уникальность и корректность.

Создание личного кабинета пользователя с возможностью изменения данных.

Добавление оферт и площадок после успешной аутентификации пользователя.

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

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Компания ориентирована на разработку веб-приложений и это влияет на выбираемые технологии, используемые работниками. IDE, которая является стандартом для программистов - PHPStorm, основной язык разработки - PHP, а фреймворк, использующийся в работе - Yii. Для изучения перечисленных технологий были использованы следующие источники.

Язык программирования PHP

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

Синтаксис языка PHP очень похож на синтаксис языка Си. Для его работы не требуется описывать какие-либо переменные. Любая программа может начаться непосредственно с оператора PHP.

В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в июне 2013 года PHP находился на 5 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, Wikipedia и др.

Входит в LAMP -- распространённый набор программного обеспечения для создания и хостинга веб-сайтов (Linux, Apache, MySQL, PHP).

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

Возможности Yii Framework

Основным источником информации о фреймворке Yii стал специализированный сайт, на котором все подробно расписано по поводу того, как им пользоваться, и, что это вообще такое. При выпуске каждой новой версии фреймворка на сайте кратко описываются новые возможности каждого релиза. Так же на сайте представлен способ создания простейшего приложения, с использованием Yii.

Yii -- это высокопроизводительный PHP фреймворк, основанный на компонентной структуре (MVC) для разработки нагруженых веб-приложений: порталы, электронная коммерция, и т. д. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить процесс веб-разработки. Название Yii (произносится как Yee или [ji:]) означает простой (easy), эффективный (efficient) и расширяемый (extensible). Yii -- значительно уменьшает время на разработку и обработку кода.

Превосходство Yii над другими фреймворками заключается в эффективности, широких возможностях и качественной документации. Yii изначально спроектирован очень тщательно для соответствия всем требованиям при разработке серьёзных веб-приложений. Yii не является ни побочным продуктом какого-либо проекта, ни сборкой сторонних решений. Он является результатом большого опыта авторов в разработке веб-приложений, а также их исследований наиболее популярных веб-фреймворков и приложений.

Подробнее о возможностях Yii Framework

Архитектура MVC. Yii использует шаблон проектирования Модель-Представление-Контроллер (MVC, Model-View-Controller), который широко применяется в веб-программировании. MVC предназначен для разделения бизнес-логики и пользовательского интерфейса, чтобы разработчики могли легко изменять отдельные части приложения, не затрагивая другие. В архитектуре MVC модель предоставляет данные и правила бизнес-логики, представление отвечает за пользовательский интерфейс (например, текст, поля ввода), а контроллер обеспечивает взаимодействие между моделью и представлением. Помимо этого, Yii использует фронт-контроллер, называемый приложением (application), который инкапсулирует контекст обработки запроса. Приложение собирает информацию о запросе и передает её для дальнейшей обработки соответствующему контроллеру.

DAO и Active Record. Yii предоставляет разработчику мощный инструмент для работы с базами данных -- объекты доступа к данным (DAO). Yii DAO -- это надстройка над расширением PHP Data Objects (PDO), позволяющая работать с различными СУБД через единый интерфейс. Приложения, разработанные с использованием DAO, могут легко переключаться с одной СУБД на другую без необходимости внесения правок в программный код, отвечающий за доступ к данным. Конструктор запросов Yii предоставляет объектно-ориентированный способ построения SQL-запросов, что позволяет понизить риск SQL-инъекций. Yii Active Record (AR) реализует переработанный подход объектно-реляционного проецирования (ORM) и ещё больше упрощает работу с базами данных. Представляя таблицу базы данных как класс, а строки таблицы как экземпляры класса, Yii AR избавляет от необходимости написания SQL-выражений, связанных с операциями CRUD (создание, чтение, обновление и удаление).

Интеграция с jQuery. Фреймворк интегрирован с современной java-script библиотекой jQuery которая поможет вам с лёгкостью создавать ajax элементы на ваших страницах.

Валидация форм. Фреймворк содержит в себе отличный встроенный класс для валидации данных из форм. Валидатор позволяет использовать большое кол-во встроенных правил (которых в основном хватает), либо написать свои правила для проверки данных (как отдельную функцию или класс).

Виджеты. Виджет (widget) -- это экземпляр класса CWidget или унаследованного от него. Это компонент, применяемый, в основном, с целью оформления. Виджеты обычно встраиваются в представления для формирования некоторой сложной, но в то же время самостоятельной части пользовательского интерфейса. К примеру, виджет календаря может быть использован для рендеринга сложного интерфейса календаря. Виджеты позволяют повторно использовать код пользовательского интерфейса.

Генератор кода GII. Yii предоставляет отличный встроенный генератор исходного кода. Указав лишь основные параметры - Yii генерирует общую структуру приложения которая будет содержать все необходимые модели/контроллеры/отображения для старта.

Кэширование. Кэширование -- это простой и эффективный способ повысить производительность веб-приложения. Сохраняя относительно статичные данные в кэше и извлекая их из кэша, когда потребуется, мы экономим время, затрачиваемое на генерацию данных.

Модель-Представление-Контроллер (MVC)

Yii использует шаблон проектирования Модель-Представление-Контроллер (MVC, Model-View-Controller), который широко применяется в веб-программировании.

MVC предназначен для разделения бизнес-логики и пользовательского интерфейса, чтобы разработчики могли легко изменять отдельные части приложения, не затрагивая другие. В архитектуре MVC модель предоставляет данные и правила бизнес-логики, представление отвечает за пользовательский интерфейс (например, текст, поля ввода), а контроллер обеспечивает взаимодействие между моделью и представлением.

Рисунок. 3.1 Структура MVC

Помимо этого, Yii использует фронт-контроллер, называемый приложением (application), который инкапсулирует контекст обработки запроса. Приложение собирает информацию о запросе и передает её для дальнейшей обработки соответствующему контроллеру. На рисунке 3.2 показана структура приложения Yii (http://yiiframework.ru/guide/source/images/structure.png).

Рисунок. 3.2 Структура Yii приложения

ПРОЕКТИРОВАНИЕ ПРИЛОЖЕНИЯ

При проектировании приложения был использован язык UML - язык графического описания для объектного моделирования в области разработки программного обеспечения.

С помощью этого языка была построена диаграмма прецедентов (вариантов использования).

Как выглядит диаграмма для выполнения задания можно увидеть на рисунке 4.1.

Рисунок. 4.1. Use-case диаграмма

На диаграмме рассмотренной выше показано основное взаимодействие пользователя с сайтом, будь то обычный посетитель или зарегистрированный пользователь. Посетитель, когда посещает сайт, имеет возможность просматривать только доступные ему страницы, зарегистрироваться или выполнить вход на сайт. После успешной регистрации и входа под своим логином и паролем, ему становится доступен личный кабинет и возможности добавления площадок и оферт к своему аккаунту.

Программная реализация

Заданием было за время практики, используя язык программирования PHP и фреймворк Yii создать небольшое тестовое приложение, с системой регистрации пользователей, дальнейшей возможности из аутентификации на сайте и возможностью просмотра и изменения личный данных (личный кабинет).

База данных приложения

Первым делом было необходимо создать базу данных, которая бы хранила данные о пользователях, их логины, пароли и другую информацию, как выглядят базы данных показано на рисунке 5.1.

Рисунок. 5.1 База данных программы

База данных, представленная на рисунке хранит информацию о пользователях, поля, такие как id, login, mail должны быть уникальны. Так же ещё есть связанные с ней таблицы, в которых хранятся площадки и оферты принадлежащие каждому пользователю.

Таблица Users содержит в себе информацию о пользователе, которая включает в себя уникальный идентификатор (id), логин (login), пароль (pass), электронную почту (mail), статус (status), настоящее имя пользователя (name), фамилия (surname), пол (sex).

Таблица Offers содержит в себе информацию об офертах, включающая в себя уникальный идентификатор (id), идентификатор пользователя к которому данная оферта относится (user_id), тип (type), название (name), дату добавления (date), статус (status), электронный адрес сайта оферты (url).

Таблица Areas содержит в себе информацию о площадках, имеющихся у пользователя, идентификатор пользователя к которому данная площадка относится (user_id), тип (type), название (name), дату добавления (date), статус (status), электронный адрес сайта площадки (url).

Таблица offers_areas необходима для осуществления прикрепления оферты к своей площадке. Содержит в себе уникальный идентификатор (id), далее уникальные идентификаторы оферты (offer_id) и площадки (area_id), дату добавления (date) и статус (status).

Интерфейс приложения

Для того, чтобы пользователю зарегистрироваться, ему необходимо ввести логин, пароль и электронный адрес. Страница регистрации пользователей показана на рисунке 5.2.

Рисунок. 5.2 Страница регистрации пользователей

Если пользователь ввел данные, согласно правилам валидации, то при нажатии на кнопку регистрация мы увидим сообщение об успешной регистрации, иначе нужно исправить введенные данные. Ниже представлено две ситуации ввода данных.

Рисунок. 5.3 Ввод данных с ошибкой

Рисунок. 5.4 Корректный ввод данных

После того, как пользователь аутентифицировался, ему становится доступен вход в личный кабинет, для возможности просмотра и редактирования своих данных, а так же ссылка для добавления площадок. Как выглядят страницы для аутентификации в системе и личный кабинет можно увидеть на рисунке 5.5 и рисунке 5.6 соответственно.

Рисунок. 5.5 Аутентификация пользователя в системе

Рисунок.5.6 Личный кабинет пользователя

ТЕСТИРОВАНИЕ ПРИЛОЖЕНИЯ

Любая программа, которую разрабатывает программист, должна быть протестирована на случай некорректной работы. Но в силу того, что всевозможных вариантов входных данных может быть бесконечное множество, невозможно провести тестирование на всех этих наборах, поэтому при тестировании выявляют некоторые граничные значения, которые и используются в тестах.

При разработке сайта по данному заданию использовался метод тестирования черным ящиком. Данный вид тестирования относится к тестированию по знанию системы. Тестирование черным ящиком - это тестирование, при котором не используется знание о внутреннем устройстве тестируемого объекта, в нашем случае, когда мы видим только интерфейс, не видя исходного кода. Результаты некоторых тестов можно посмотреть в табл.1.

Таблица 1

Результаты тестирования

Описание входных данных

Ожидаемый результат

Результат теста

Аутентификация

Login - user1

Pass - pass1

Успешная аутентификация

Успешная аутентификация

Аутентификация

Login - user1

Pass - pass2

Сообщение об ошибке - Неверный логин/пароль

Сообщение об ошибке - Неверный логин/пароль

Регистрация

Email - mail.mail.ru

Сообщение об ошибке - email введен неверно

Исключение, email введен неверно

Регистрация

Login - user1

Сообщение об ошибке -

Указанный пользователь уже зарегистрирован

Исключение, невозможно добавить запись в БД, запись не уникальна.

Регистрация

Поля Login или email пустые

Сообщение об ошибке - Необходимо заполнить все поля

Сообщение об ошибке - Необходимо заполнить все поля

Личный кабинет

Поле Login/Pass/email с некорректным значениями

Сообщение об ошибке - Проверить корректность введенных данных

Сообщение об ошибке - Проверить корректность введенных данных

Личный кабинет

Поле Login/Pass/email пустое

Сообщение об ошибке - Просьба заполнить все поля

Сообщение об ошибке - Просьба заполнить все поля

По результатам тестов были проведены соответствующие правки в исходном коде программы, которые исправили те ситуации, в которых ожидаемый результат не соответствовал результатам теста.

Тестирование черным ящиком позволило удостовериться в том, что сайт, вместе с системой регистрации, аутентификации и личным кабинетом работает в соответствии с требованиями, указанными в техническом задании.

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

СПИСОК ЛИТЕРАТУРЫ

Макаров, А. Yii. Книга рецептов /А. Макаров. - М.:ДМК Пресс 2013. - 372 с.

Харрис, Э. PHP и MySQL для начинающих /Э. Харрис. - М.:КУДИЦ-ОБРАЗ 2005. - 384 с.

Макаров А. Yii фреймворк по-русски /А. Макаров. - М.: Yii Framework, Режим доступа: http://yiiframework.ru

Мишель Е. Дэвис и Джон А. Филипс. Изучаем PHP и MySQL, 2008.

Николай Прохоренок. HTML, JavaScript, PHP и MySQL. Джентельменский набор Web-мастера, 2010.

Размещено на Allbest.ru


Подобные документы

  • Методы диагностики производительности запросов. Выбор инструментов для front-end разработки. Проектирование архитектур программной системы. Реализация системы регистрации и авторизации пользователей на сайте. Причины неэффективности SQL-запросов в Oracle.

    дипломная работа [1,0 M], добавлен 09.11.2016

  • Разработка проекта для регистрации пользователей на Web-сайте с целью отслеживания интересов посетителей. Обоснование выбранных технических средств и программного обеспечения: PHP и MySQL. Описание интерфейса и отчетных форм, листинг программы модулей.

    курсовая работа [1,5 M], добавлен 01.11.2012

  • Разработка предложений по внедрению биометрической аутентификации пользователей линейной вычислительной сети. Сущность и характеристика статических и динамических методов аутентификации пользователей. Методы устранения угроз, параметры службы защиты.

    курсовая работа [347,3 K], добавлен 25.04.2014

  • Программная реализация анонимного форума с использованием PHP 5 и MySQL. Интерактивный интерфейс форума, обмен данными браузера и сервера с применением технологии AJAX. Система аутентификации, состоящая из регистрации и авторизации пользователей.

    курсовая работа [24,4 K], добавлен 12.01.2015

  • Проектирование модуля регистрации документов. Анализ предметной области, спецификация требований. Построение диаграммы прецедентов Анализ архитектуры модуля в "OpenText Content Server 16.2". Разработка программы регистрации документов, ее тестирование.

    дипломная работа [1,9 M], добавлен 25.08.2017

  • Разработка модуля регистрации абонентов для информационной системы предприятия "Библиотека". Структура базы данных. Взаимодействие клиентов с БД и клиентов друг с другом. Форма регистрации, сохранение данных. Основные сущности данного приложения.

    курсовая работа [991,4 K], добавлен 18.06.2015

  • Создание HTML-форм. Ввод многострочного текста. Тег FORM - контейнер форм. Трансляция переменных окружения. Передача данных с помощью формы. Приложения, хранящие данные о регистрации пользователей в базе данных MySQL. Порядок трансляции переменных.

    лекция [5,6 M], добавлен 27.04.2009

  • Использование электронных ключей как средства аутентификации пользователей. Анализ методов идентификации и аутентификации с точки зрения применяемых в них технологий. Установка и настройка средств аутентификации "Rutoken", управление драйверами.

    курсовая работа [4,6 M], добавлен 11.01.2013

  • Разработка приложения для работы с базой данных с использованием объектно-ориентированного и визуального программирования. Обзор языка элементов языка программирования Delphi. Проектирование базы данных автозаправки. Клиентская система приложения.

    курсовая работа [2,3 M], добавлен 31.01.2016

  • Характеристика объекта автоматизации. Создание многоуровневой архитектуры приложения, отладка метода безошибочной идентификации пользователей системы. Разработка нестандартного метода преобразования объектов базы данных в объекты классов приложения.

    курсовая работа [395,4 K], добавлен 28.04.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.