ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К курсовой работе
по специальности 230100.62 "Программное обеспечение вычислительной техники и автоматизированных систем"
На тему "Разработка форума с использованием PHP 5 и MySQL"
Реферат
Пояснительная записка - 16 страниц, 7 источников.
ФОРУМ, САЙТ, WEB, HTML, CSS, JAVASCRIPT, БИБЛИОТЕКА JQUERY, ТЕХНОЛОГИЯ AJAX.
В данной курсовой средствами связки PHP и MySQL был создан форум. Для добавления динамики на сайт был использован язык программирования JavaScript и его библиотека JQuery. Так же была использована популярная на данный момент технология AJAX.
Для решения поставленной задачи был выбран программный пакет Apache, состоящий из связки PHP + MySQL и система phpMyAdmin.
Содержание
Введение
. Проектирование базы данных
. Структура сайта
2.1 Система аутентификации
Главная страница сайта
Страница списка тем форума
Страница добавления новой темы на форум
Страница просмотра темы на форуме
Страница поиска
Страница пользователя
Страница восстановления пароля
Заключение
Список используемых источников
Введение
Целью работы является программная реализация анонимного форума. Суть заключается в том, что после регистрации идентификатором пользователя будет всего лишь его порядковый номер. Так же в этом форуме проявились элементы чата, так как переписка между пользователями осуществляется мгновенно без перезагрузки страницы.
Для решения задачи был выбран программный пакет Apache, состоящий из связки PHP + MySQL. Чтобы добиться эффекта динамического сайта, были написаны скрипты на языке JavaScript и его библиотеке JQuery. Так же, чтобы построить интерактивный интерфейс, заключающийся в "фоновом" обмене данными браузера с сервером, использовалась технология AJAX.
|
Проектирование базы данных
Для разработки базы данных (далее БД) использовалась система phpMyAdmin.
В процессе разработке было создано 5 таблиц:
theams - таблица, хранящая информации о всех темах на форуме;
Структура:
· `id` - уникальный идентификатор темы. При добавлении новой темы, автоматически увеличивается.
· `title` - заголовок темы.
· `description` - описание темы.
· `type` - тип темы (interview - опрос, topic - обычный топик).
· ` datetime ` - дата создания.
· `text` - варианты ответа для опроса.
· `otv` - результаты ответа.
· `multy` - возможность выбора несколько вариантов ответа.
· `author` - id пользователя, создавшего тему.
mess - таблица для сообщений на форуме;
Структура:
· `id` - уникальный идентификатор сообщения.
· `author` - id автора, отправившего сообщение
· `text` - текст сообщения.
· `datetime` - время написания.
· `like` - количество положительных отметок.
· `dislike` - количество отрицательных отметок.
· `wh` - id темы, к которым привязано сообщение.
favorite - таблица для хранения id тех форумов, которые пользователь пометил как избранные;
Структура:
· `id` - id темы, которая понравилась.
· `author` - id автора, которому понравилась тема.
user - таблица, хранящая информацию о пользователях, зарегистрированных на форуме;
Структура:
· `id` - уникальный идентификатор пользователя.
· `email` - почтовый ящик пользователя.
· `password` - хешированный пароль пользователя.
· `img` - картинка пользователя.
· `img_mini` - уменьшая картинка пользователя..
· `userrang` - ранг пользователя (2 - администратор, 1 - обычный пользователь, 0 - бан)
|
connect - таблица, хранящая пожелания пользователей.
Структура:
· `id` - уникальный идентификатор пожелания.
· `text` - текст пожелания.
Структура сайта
Весь сайт можно разделить 9 страниц:
1) Главная страница сайта.
2) Страница регистрации нового пользователя
3) Авторизация пользователя.
4) Страница списка тем на форуме.
5) Страница просмотра определённой темы.
6) Страница для пользователей.
7) Страница поиска.
8) Страница создания новой темы.
9) Страница восстановления пароля.
При разработке сайта, была написана библиотека функций:
1) Подключение к базе.
2) Вывод шапки сайта.
3) Вывод подвала сайта.
4) Получение данных о текущем пользователе.
5) Склонение русских слов с числительными словами.
6) Корректный вывод даты.
7) Получение данных о пользователе по его ID
Система аутентификации
форум интерфейс сервер аутентификация
Система аутентификации состоит из регистрации и авторизации пользователей.
Регистрация пользователей лежит в модуле reg.php. При открытии этого модуля, в браузере выводится 4 поля: 2 для заполнения почтового ящика пользователя и 2 поля для ввода пароля пользователя. Дублирование полей ввода необходимо для предотвращения случайных ошибок при заполнении данных.
После того как пользователь введёт и нажмет на кнопку зарегистрироваться, отправляется AJAX запрос на скрипт reg.php, который заносит нового пользователя в таблицу, в ответ скрипт возвращает true, если всё прошло успешно и пользователь добавлен в БД или html текст ошибок, который выводится в сообщении.
Авторизация пользователя осуществляется с помощью модуля login.php, либо через панель, которая выводится в шапке сайта. Модуль, так же как и панель состоит из 2 полей: поля для ввода почтового ящика и поля для ввода пароля. При авторизации пользователя данные с запросом POST посылаются на скрипт enter.php, который проверяет правильность вхождения данных логин - пароль.
|
Если эти данные не совпадают, то происходит редирект на страницу login.php, в котором с помощью GET передается тип ошибки. Если же все прошло успешно, и пользователь авторизовался, то для него создается сессия, в которой существует 1 переменная id, в которой хранится уникальный идентификатор пользователя, устанавливаются или перезаписываются cookies и происходит редирект на страницу theams.php.
Главная страница сайта
Главная страница (index.php) видна только незарегистрированным пользователям, так как зарегистрированный пользователь всегда перенаправляется на страницу theams.php.
При открытии страницы index.php сначала происходит поиск cookies пользователя. Если cookies найдены, то начинаем проверять их. Если проверка прошла успешно, то заводим на пользователя сессию.
Иначе, выводим страницу, для незарегистрированного пользователя.
Страница списка тем форума
После регистрации вы скрипт перекидывает пользователя именно на эту страницу (theams.php). На данной странице, если пользовать не зарегистрирован, выводится только список тем, которые были созданы пользователя сайта. Но если же пользователь зарегистрирован, то в верхней части выводятся некоторые функции пользователя, такие как: добавление новой темы, просмотреть новые сообщения на форуме, и переключение между избранным и обычным списком тем.