Разработка форума с использованием PHP 5 и MySQL

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе

по специальности 230 100. 62 «Программное обеспечение вычислительной техники и автоматизированных систем»

На тему «Разработка форума с использованием PHP 5 и MySQL»

Реферат

Пояснительная записка — 16 страниц, 7 источников.

ФОРУМ, САЙТ, WEB, HTML, CSS, JAVASCRIPT, БИБЛИОТЕКА JQUERY, ТЕХНОЛОГИЯ AJAX.

В данной курсовой средствами связки PHP и MySQL был создан форум. Для добавления динамики на сайт был использован язык программирования JavaScript и его библиотека JQuery. Так же была использована популярная на данный момент технология AJAX.

Для решения поставленной задачи был выбран программный пакет Apache, состоящий из связки PHP + MySQL и система phpMyAdmin.

Содержание

Введение

1. Проектирование базы данных

2. Структура сайта

2.1 Система аутентификации

2.2 Главная страница сайта

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

2.4 Страница добавления новой темы на форум

2.5 Страница просмотра темы на форуме

2.6 Страница поиска

2.7 Страница пользователя

2.8 Страница восстановления пароля

Заключение

Список используемых источников

Введение

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

Для решения задачи был выбран программный пакет Apache, состоящий из связки PHP + MySQL. Чтобы добиться эффекта динамического сайта, были написаны скрипты на языке JavaScript и его библиотеке JQuery. Так же, чтобы построить интерактивный интерфейс, заключающийся в «фоновом» обмене данными браузера с сервером, использовалась технология AJAX.

1. Проектирование базы данных

Для разработки базы данных (далее БД) использовалась система 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` - текст пожелания.

2. Структура сайта

Весь сайт можно разделить 9 страниц:

1) Главная страница сайта.

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

3) Авторизация пользователя.

4) Страница списка тем на форуме.

5) Страница просмотра определённой темы.

6) Страница для пользователей.

7) Страница поиска.

8) Страница создания новой темы.

9) Страница восстановления пароля.

При разработке сайта, была написана библиотека функций:

1) Подключение к базе.

2) Вывод шапки сайта.

3) Вывод подвала сайта.

4) Получение данных о текущем пользователе.

5) Склонение русских слов с числительными словами.

6) Корректный вывод даты.

7) Получение данных о пользователе по его ID

2. 1 Система аутентификации

форум интерфейс сервер аутентификация

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

Регистрация пользователей лежит в модуле reg. php. При открытии этого модуля, в браузере выводится 4 поля: 2 для заполнения почтового ящика пользователя и 2 поля для ввода пароля пользователя. Дублирование полей ввода необходимо для предотвращения случайных ошибок при заполнении данных.

После того как пользователь введёт и нажмет на кнопку зарегистрироваться, отправляется AJAX запрос на скрипт reg. php, который заносит нового пользователя в таблицу, в ответ скрипт возвращает true, если всё прошло успешно и пользователь добавлен в БД или html текст ошибок, который выводится в сообщении.

Авторизация пользователя осуществляется с помощью модуля login. php, либо через панель, которая выводится в шапке сайта. Модуль, так же как и панель состоит из 2 полей: поля для ввода почтового ящика и поля для ввода пароля. При авторизации пользователя данные с запросом POST посылаются на скрипт enter. php, который проверяет правильность вхождения данных логин — пароль.

Если эти данные не совпадают, то происходит редирект на страницу login. php, в котором с помощью GET передается тип ошибки. Если же все прошло успешно, и пользователь авторизовался, то для него создается сессия, в которой существует 1 переменная id, в которой хранится уникальный идентификатор пользователя, устанавливаются или перезаписываются cookies и происходит редирект на страницу theams. php.

2. 2 Главная страница сайта

Главная страница (index. php) видна только незарегистрированным пользователям, так как зарегистрированный пользователь всегда перенаправляется на страницу theams. php.

При открытии страницы index. php сначала происходит поиск cookies пользователя. Если cookies найдены, то начинаем проверять их. Если проверка прошла успешно, то заводим на пользователя сессию.

Иначе, выводим страницу, для незарегистрированного пользователя.

2. 3 Страница списка тем форума

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

2. 4 Страница добавления новой темы на форум

Добавление новой темы на форум (add. php) осуществляется в 2 шага.

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

2 шаг. После выбора типа тема, пользователь начинает вводить необходимые данные, в зависимости какой тип темы он выбрал. Например, для опроса добавляются новые необходимые поля: поля для ввода вариантов ответа.

2. 5 Страница просмотра темы на форуме

Чтобы открыть данную страницу (theam. php) необходимо предать методом GET 1 необходимый параметр post, данный параметр говорит модулю информацию о какой странице выводить.

Далее при открытии этой страницы из БД вытаскивает тип темы и если тип оказывается interview, то после заголовка и описания темы выводится опрос темы. Если поле multy равен true, то выводиться будет опрос с возможность множественного выбора, иначе будет выводиться опрос 1 вариантом ответа.

Далее из таблицы `mess` вытаскиваются все сообщения и выводятся списком.

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

Отправление сообщений, так же как регистрация осуществляется с помощью технологии AJAX на скрипт php/addmess. php. Данный скрипт в случаи успешного добавления нового сообщения возвращает страницу, на которой будет выводиться это сообщение. Если эта страница не совпадает с текущей, то происходит редирект на полученную страницу, так же с помощью AJAX осуществляется вывод сообщений на текущую страницу.

Если же скрипт не смог добавить сообщение в БД, то возвращается HTML ошибки, который выводится в сообщении.

Так же в момент открытия страницы начинается рекурсивный процесс отправок AJAX запросов на скрипт php/newmess. php. Данный скрипт возращает 0 — если на данной странице нет ни одного нового сообщения. Или же возвращает N — кол-во новых сообщений и в нижнем правом углу появляется сообщение «Добавлено N новых сообщений».

Если текущая страница совпадает со страницей нового сообщения, то при нажатии на это сообщение средствами AJAX будет выведены все новые сообщения. В противном случае, произойдет редирект на страницу с новым сообщением и браузер автоматически, если это необходимо, прокрутит scroll именно к этому сообщению.

2. 6 Страница поиска

На страницу поиска (search. php) можно попасть из любой страницы сайта, чтобы прейти на эту страницу, необходимо просто в шапке сайта ввести запрос поиска.

Поиск на сайте осуществляется с помощью ключевого слова в LIKE в SQL запросе. Поиск идёт по всем форумам на сайте.

2.7 Страница пользователя

Чтобы попасть нас страницу пользователя необходимо в мотодом GET передать параметр id. Данный параметр говорит модуль (user. php) информацию, о каком пользователе выводить.

Данная страница, если пользователь не авторизован, выводит количество сообщений, кол-во созданных тем, список этих тем, последнее сообщение, отправленное пользователем и т. д.

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

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

2. 8 Страница восстановления пароля

Бывают ситуации, когда пользователь забывают свои пароли и их нужно восстанавливать. Именно эту функцию выполняет модуль по восстановлению пароля (restore. php). Так как пароль пользователя хешируется с помощью функции md5, просто отправить пользователю пароль не получится. Поэтому пользователю создается ссылка и отправляется ему на почтовый ящик. Пройдя по этой ссылке, модуль генерирует случайное число от 100 000 до 999 999, что и будет являться новым паролем пользователя. Далее это случайное число записывается в базу и выводится пользователю.

Заключение

В результате выполнения работы были получены навыки разработки в проектировании и разработки WEB — приложений, а именно в написании сайта.

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

Список используемых источников

1. А. Я. Архангельский «Программирование PHP» Москва 2009 г.

2. А. Я. Архангельский «Приемы программирования на PHP» Москва 2012 г.

3. Стив Тейксера, Ксавье Пачеко «PHP+MySQL Руководство разработчика» Москва 2008 г.

4. Фень Юань «web программирование» Москва 2012 г.

ПоказатьСвернуть
Заполнить форму текущей работой