Файл: Разработка сайта интернет – магазина цветов.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.06.2023

Просмотров: 79

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
  1. Apache
  2. PHP
  3. Mysql
  4. Веб – сервер Apache давно обрел популярность, благодаря ему работает большинство сайтов в сети интернет и обрабатываются запросы.

Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.

  1. PHP (Hypertext Preprocessor) — скриптовый язык общего назначения, интенсивно применяемый для разработки веб –приложений. В настоящее время поддерживается подавляющим большинством хостинг – провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб –сайтов.
  2. MySQL – свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей.

Данный СУБД был выбран из-за своего тесной связи с языком PHP. Так как для работы с СУБД MySQL, PHP разработчику не приходиться добавлять сторонние библиотеки или иные функции.

Примечание:

Так же можно перечислить современные браузеры, например «Google Chrome» или «Mozilla Firefox». Для настройки проекта. Так как если на компьютере будет установлена не актуальная версия, то нас ждет масса проблем, так как некоторые браузеры не поддерживают некоторые функции, которые появились в HTML5.

Чтобы приступить к разработке проекта, необходимо спроектировать схему баз данных (Ели бы мы использовали CMS, то мы бы могли пропустить данный пункт, так как большинство интернет магазинов универсальные и не пришлось бы добавлять новые таблицы или проектировать схему БД).

Рисунок 2.1 Схема БД Интернет магазина по продаже цветов

После представления схемы БД нашего интернет магазина, представим таблицы БД и подробно опишем их назначения и роли в проекте.

Таблица 2.1 Таблица admin

Столбец

Тип

Null

Назначения

Id

int(11)

Нет

Идентификатор

_login

varchar(20)

Нет

Логин

_password

varchar(33)

Нет

Пароль


Таблица admin используется для идентификации пользователя с правами администратора.

Далее будет представлена таблица pokupateli которая хранит данные о клиентах.

Таблица 2.2 Таблица pokupateli

Столбец

Тип

Null

Назначения

id

int(11)

Нет

Идентификатор

fio

varchar(50)

Нет

ФИО

phone

varchar(20)

Нет

Уникальный номер телефона

email

varchar(50)

Нет

Уникальная почта

password

varchar(32)

Нет

Пароль

adress

Text

Да

Адрес

Если клиент заказывает цветы другому человеку, то ему необходимо указать персональные данные получателя, для этого создана таблица poluchateli.

Таблица 2.3 Таблица poluchateli

Столбец

Тип

Null

Назначения

Id

int(11)

Нет

Идентификатор

id_pokupatel

int(11)

Нет

Идентификатор покупателя

Fio

varchar(50)

Нет

ФИО

Phone

varchar(20)

Нет

Номер телефона

Email

varchar(50)

Нет

Почта

date_

Date

Нет

Дата получения заказа

Adres

Text

Нет

Адрес

Ниже представлена таблица категория товаров(цветов).

Таблица 2.4 Таблица tovar_category

Столбец

Тип

Null

Назначения

id

int(11)

Нет

Идентификатор

name

varchar(255)

Нет

Названия категорий

image

text

Нет

Изображения

Таблица для хранения данных о товаре.

Таблица 2.5 Таблица tovary


Столбец

Тип

Null

Назначения

Id

int(11)

Нет

Идентификатор

Label

varchar(255)

Нет

Заголовок

Price

Float

Нет

Цена

category_id

int(11)

Нет

Идентификатор категория цветов

Image

Text

Нет

Изображения

Count

int(11)

Нет

Количество в наличии

About

text

Нет

Дополнительное описания

Таблица для хранения данных о заказе.

Таблица 2.6 Таблица zakaz

Столбец

Тип

Null

Назначения

Id

int(11)

Нет

Идентификатор

pokupatel_id

int(11)

Нет

Идентификатор покупателя

COMMENT

text

Да

Комментарий

Dpokup

datetime

Да

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

Status

int(11)

Да

Статус заказа

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

Таблица 2.7 Таблица zakaz_tovar

Столбец

Тип

Null

Назначения

id

int(11)

Нет

Идентификатор

zakaz_id

int(11)

Нет

Идентификатор заказа

tovar_id

int(11)

Нет

Идентификатор товара

count

int(11)

Да

Количество

После проектирования схемы БД приступаем к реализацию проекта:

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

Рисунок 2.2 Структура каталогов проекта

В представленной структуре (рисунок 2.2) каталог «admin» содержит php модули, которые относятся к пользователю с правами администратора. Каталог «helpers» содержит настройки и дополнительные функции для подключения к СУБД. Каталог «public» хранит в себе статические файлы, например каскадные стили и изображения товаров. Каталог «users» содержит модули для заказчика.


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

Представленный код из «Приложения А» используется для подключения к СУБД. Так же реализованы методы для выполнения запросов с возвращаемым значением и с не возвращаемым значением. Для защиты от SQL инъекции реализована функция f_screening.

Реализации функции регистрация администратора:

Исходный код реализации представлен в «приложении Б».

Результат выполнения представленного кода представлен на рисунке 2.3.

Рисунок 2.3 Регистрация под пользователем с правами администратора

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

Исходный код реализации данной функции представлен в пункте «Приложение В».

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

Ниже, на рисунке 2.4 представлен результат выполнения представленного кода:

Рисунок 2.4 Авторизация под пользователем с правами администратора

Реализация функции добавления категорий товаров:

Исходный код, реализации функции добавления категорий товаров представлен в пункте «Приложение Г».

Представленный код проверяет наличие post запросов со значением названия категорий и изображений, если все параметры учтены, то изображения категорий сохранятся в каталоге «images», а имя файла и названия категорий будут сохранены в таблице «tovar_category».

Рисунок 2.5 Добавления категорий товаров

После добавления категорий, добавленная категория будет представлена в пункте меню список категорий товаров (рисунок 2.6).

Рисунок 2.6 Просмотр список категорий товаров

При нажатии на каждую категорию мы получаем те товары, которые содержатся в данной категории (рисунок 2.7).

Рисунок 2.7 Просмотр список товаров


Данный функционал обеспечивается при добавлении товара (рисунок 2.8):

Рисунок 2.8 Просмотр список товаров

Исходный код реализации добавления товара представлен в пункте «Приложение Д».

Ниже будут описаны наиболее интересные возможности сайта:

Реализация функциональности корзины для покупок. Исходный код реализации представлен в пункте «Приложение Е».

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

Рисунок 2.9 Добавления товара в корзину

Рисунок 2.10 Удаления товара из корзины

Примечание:

Данные товара хранятся в сессии.

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

<?php

session_start();

if (!isset($_SESSION['uid']))

{

header('Location:./signin.php');

}

?>

Данная функция проверяет авторизирован пользователь или нет, если пользователь не авторизирован, то он перенаправляется на страницу авторизации.

Ниже будет представлен пример тестирования интернет магазина по продажи цветов.

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

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

Рисунок 2.11 Главная страница

При нажатии на определенную категорию пользователь получает товары из этой категории. Так же пользователь может ввести фразу и нажать на кнопку «Поиск» таким образом, тоже может получить товары по найденной фразе.

Рисунок 2.12 Товары по категориям

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

Рисунок 2.13 Добавления в корзину

После добавления товара в корзину их цена суммируется в области навигации.

Рисунок 2.14 Корзина

При нажатия на корзину пользователь перенаправляется на страницу представленной на рисунке 2.10.