Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Разработка сайта интернет – магазина цветов

Содержание:

Введение

Электронный бизнес — бизнес-модель, в которой бизнес – процессы, обмен бизнес информацией и коммерческие транзакции автоматизируются с помощью информационных систем. Значительная часть решений использует Интернет – технологии для передачи данных и предоставления Web – сервисов. Впервые термин прозвучал в выступлении бывшего генерального директора IBM Луиса Герстнера.

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

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

Основной составляющей электронного бизнеса является электронная коммерция. Электронная коммерция – это не только операции купли продажи, но и сопровождение процессов формирования спроса на продукцию и услуги, онлайновая обработка заказов, а так же обмен информацией между партнерами.

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

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

Для достижения поставленной цели необходимо решить ряд задач, а именно:

– разработка проекта магазина, включающего в себя внесение ассортимента товаров;

– разработка удобной структуры сайта, понятной пользователю;

– обеспечение удобства работы пользователя с сайтом

Глава 1. Теоретическая часть

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

При интернет торговле клиент может оплатить товар и при удобстве может получить товар в любой точке мира (Например, клиент, находясь в России, может заказывать товары, из любой точки мира используя китайский интернет магазин aliexpress или amazon).

Интернет магазин в основном имеет склады с продукцией или собственных поставщиков товаров. Например, многие брендовые магазины предлагают онлайн и офлайн продажу (например, Eldorado). Данный подход на много увеличивает продажи.

В России для открытия интернет магазина требуется определить ОКВЭД[2] (Общероссийского классификатора видов экономической деятельности) для назначения налогообложения. И за тем определить вид деятельности «ИП» или «ООО». В зависимости от уровня бизнеса и количества участников.

За последнее годы появились законы не разрешающий интернет магазинам вести торговлю без использования кассовых аппаратов или онлайн касс (например, яндекс касса)[3]. Из-за таких нюансов, прежде чем задумываться о разработке и внедрения интернет магазина необходимо тщательно знакомиться с законодательством в данной сфере. При внедрении интернет магазина без этих нюансов придется платить большие штрафы из – за не законных продаж.

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

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

Ниже будут представлены дальнейшие действия для описания хода разработки и внедрения интернет магазина:

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

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

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

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

4) После разработки и успешного тестирования интернет магазина необходимо выбрать место его размещения.

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

1.1 Анализ и сходных данных

Посредником, реализующим доступ от клиента к БД, выступает специальная программа – Web- сервер, обеспечивающая функционирование пользовательского приложения, выполняющего непосредственный запрос к данным и возврат ответа в виде HTML – документа (рисунок 1.1).

Описание: Описание: Описание: Описание: Структурная схема доступа к базе данных

Рисунок 1.1 Структурная схема доступа к базе данных

Фактически Web-сервер включает несколько других серверов, реализующих необходимые протоколы.

Так IIS (Internet Information Services) включает серверы:

˗ HTTP (Hypertext Transfer Protocol) – протокол передачи гипертекста

˗ FTP (File Transfer Protocol) – протокол передачи файлов

˗ NNTP (Network News Transfer Protocol) – сетевой протокол передачи ново стей

˗ SMTP (Simple Mail Transfer Protocol) – простой протокол передачи почты

Механизм доступа к БД на стороне сервера реализуется за счет наличия стандартизованных средств:

˗ Поддержки диалоговых форм на уровне гипертекстового документа (язык HTML – Hypertext markup Language). С каждым документом связан URL (Uniform Recourse Locator), для доступа к которым используется объектно – ориентированный протокол HTTP (Hypertext Transfer Protocol).

˗ Возможности запуска серверных программ, взаимодействие которых происходит через стандартный интерфейс CGI или прикладные интерфейсы Web-сервера.

Для поддержки HTTP – протокола в составе Web – сервера имеется HTTP – сервер. HTTP – клиент/серверное взаимодействие состоит из одного обмена запрос/ответ. Это краткая транзакция между клиентом и сервером. Фактически HTTP – это PRC (Remote Procedure Call) в Web поверх TCP/IP. HTTP не имеет состояния, не помнит предыдущих состояний и обладает важным свойством передавать самоописывающиеся данные.

Лидером среди баз данных, применяемых для разработки WEB-приложений, на сегодняшний день, безусловно, является MySQL. Главное достоинство MySQL (плавно переходящее в недостаток) – ее простота. Как следствие – высочайшая скорость выполнения SQL – запросов и необходимость явного программирования основных правил поддержания целостности и непротиворечивости данных на уровне сервера приложений.

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

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

Для записи, выборки и обработки данных, хранящихся в компьютерной базе данных, используется система управления базой данных, каковой и является ПО (программное обеспечение) MySQL. Поскольку компьютеры замечательно справляются с обработкой больших объемов данных, управление базами данных играет центральную роль в вычислениях. Реализовано такое управление может быть по – разному – как в виде отдельных утилит, так и в виде кода, входящего в состав других приложений.

MySQL – это система управления реляционными база ми данных.

В реляционной базе данных, данные хранятся не все вместе, а в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. SQL как часть системы MySQL можно охарактеризовать как язык структурированных запросов плюс наиболее распространенный стандартный язык, используемый для доступа к базам данных.

Программное обеспечение MySQL – это ПО с открытым кодом.

ПО с открытым кодом означает, что применять и модифицировать его может любой желающий. Такое ПО можно получать по Internet и использовать бесплатно. При этом каждый пользователь может изучить исходный код и изменить его в соответствии со своими потребностями. Использование программного обеспечения MySQL регламентируется лицензией GPL (GNU General Public License) , в которой указано, что можно и чего нельзя делать с этим программным обеспечением в различных ситуациях. Если работа в рамках GPL вас не устраивает или планируется встраивание MySQL-кода в коммерческое приложение, есть возможность купить коммерческую лицензированную версию у компании MySQL AB.

Средства разработки интернет магазина

Основным языком для разработки интернет магазина является веб-ориентированный язык PHP. На данном языке реализованы большинство сайтов сети интернет. Данный язык обрел популярность из – за простоты изучения и дешевизны разработки и поддержки по сравнения с другими языками (например ruby, python).

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

  1. Чистый язык — это материал, из которого можно сделать все, что угодно. Ограничивают нас только возможности языка. На чистом языке сделаны все крупнейшие сайты мира с посещаемостью в сотни миллионов и миллиардов пользователей, такие как: Instagram, YouTube, Pinterest, Tumblr, Dropbox, Twitter, Facebook, Amazon, Digg, LinkedIn и другие. Более того, крупнейшие проекты в мире даже разрабатывают новые технологии для себя, так как уже существующие их не устраивают.
  2. Фреймворк — это некая среда разработки для программиста с готовыми правилами и инструментами. Фреймворк, с одной стороны, помогает и ускоряет разработку, а с другой, накладывает определенные ограничения. На Фреймворках делаются проекты средней сложности с посещаемостью в миллионы.
  3. CMS — это уже готовое решение, конструктор, в котором мы по частям собираем нужный проект. Его скорее не программируют, а настраивают. Ограничений тут огромное количество, выйти за границы коробки сложно и неэффективно. На CMS делаются простые сайты с посещаемостью до миллиона пользователей в месяц.

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

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

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

Глава 2. Практическая часть

В данной части курсового проекта будет описан ход реализации проекта:

Далее будут описаны технологии для реализации проекта:

Для локального развертывания проекта необходимо, что бы на компьютере, на стадии разработки присутствовали следующие программы:

  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, то мы бы могли пропустить данный пункт, так как большинство интернет магазинов универсальные и не пришлось бы добавлять новые таблицы или проектировать схему БД).

C:\prodaji.png

Рисунок 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.

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

Рисунок 2.15 Оформления заказа

При правильном заполнении появиться сообщения представленной на рисунке 2.16.

Рисунок 2.16 Оформления заказа-продолжения

При переходе на страницу администратора можно увидеть заказ, который был оформлен (рисунок 2.17).

Рисунок 2.17 Просмотр заказов

Администратор при поступления нового заказа может с ним подробно ознакомиться и поменять его статус с «в обработке» на «исполнен» (рисунок 2.18).

Рисунок 2.18 Смена статуса заказа

Заключение

В ходе выполненной курсовой работы мною были получены навыки в области создания интернет – магазина. Были подробно изучены и объяснены современные методы и технологии, применяемые при разработке интернет – магазина.

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

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

В ходе реализации проекта мной были изучены основы работы с СУБД MySQL, так же были изучены возможности языков PHP и JavaScript.

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

1. Олищук А.В., Чаплыгин А.Н. «Разработка Web-приложений на PHP 5», 2006.

2. Резиг Д. “Секреты JavaScript ниндзя”, 2013.

3. Васильев Г.А., Забегалин Д.А. «Электронный бизнес и реклама в Интернет», 2008.

4. Гаевский А. Ю., Романовский В.А. «100% самоучитель. Создание Web-страниц и Web-сайтов. HTML и JavaScript», 2015.

5. Зандстра М. «PHP. Объекты, шаблоны и методики программирования», 2015.

6. Муссиано Ч., Кеннеди Б. ««HTML и XHTML. Полное руководство», 2015.

7. Никсон Р. «PHP. Создаем динамические веб-сайты с помощью PHP, MySQL и JavaScript», 2015.

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

9. Рева О.Н. «JavaScript в кармане», 2015.

10. Рейсиг Д. «JavaScript Профессиональные приемы программирования», 2015.

Приложение A

Файл конфигурации (config.php):

<?php

$hostname = "localhost";

$database_name = "prodaji";

$username = "root";

$password = "";

$connection = new mysqli($hostname,$username, $password, $database_name);

$connection->set_charset("utf8");

if ($connection->connect_errno)

{

echo "Не удалось подключиться к MySQL: (" . $connection->connect_errno . ") " . $connection->connect_error;

}

function f_screening($text)

{

$text = strip_tags($text);

$text = htmlspecialchars($text);

$text = trim($text);

return $text;

}

function insert($connection,$sql)

{

if (mysqli_query($connection, $sql))

{

return 1;

}

else

{

echo "Error: " . $sql . "<br>" . mysqli_error($connection);

return 0;

}

}

function qwerty($connection,$query)

{

$re = mysqli_query($connection,$query) or trigger_error(mysqli_error().$query);

return $re;

}

Приложение Б

Файл конфигурации ( config.php):

<?php

session_start();

require_once ('../helpers/config.php');

if (isset($_POST['login'])&&isset($_POST['password'])&&isset($_POST['secret']))

{

$this_secret=f_screening($_POST['secret']);

if ($secret==$this_secret)

{

$login=f_screening($_POST['login']);

$password=md5( sha1(f_screening($_POST['password'])));

if (insert($connection,"INSERT INTO admin (`_login`, `_password`) VALUES ('$login','$password');"))

{

echo "<script>alert('Добавлен')</script>";

}

}else

echo "<script>alert('Не правильные данные')</script>";

}else

$msg="Регистрация!";

?>

<div class="login-page">

<div class="form">

<form method="post" action="">

<p style="text-align: center;color: red" >

<?php

if(isset($msg)) echo $msg;

?>

</p>

<input type="text" name="login" placeholder="Логин" required/>

<input type="password" name="password" placeholder="Пароль" required/>

<input type="password" name="secret" placeholder="Секретный ключ" required/>

<button>Войти</button>

</form>

</div>

</div>

Приложение В

Авторизация пользователя с правами администратора:

<?php

session_start();

if (isset($_POST['login'])&&isset($_POST['password']))

{

$login=f_screening($_POST['login']);

$password=md5( sha1(f_screening($_POST['password'])));

$users=qwerty($connection,"select * from admin where _login='$login' and _password='$password';");

$user_id=mysqli_fetch_row($users);

if ($user_id!=null){

print_r($user_id);

session_start();

$_SESSION['uid']=$user_id[0];

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

}else

echo "<script>alert('Не правильный логин или пароль')</script>";

}else

$msg="Вход!";

?>

Приложение Г

Добавления категорий товаров:

require_once ('../helpers/config.php');

if (isset($_POST['name'])&&isset($_FILES['image']))

{

$name=f_screening($_POST['name']);

$fname=basename($_FILES["image"]["name"]);

$uploadfile = "../public//images//$fname";

move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile);

if (insert($connection, "INSERT INTO tovar_category (name, image) VALUES ('$name','$fname');"))

{

$msg="Добавлен!";

}else

$msg="Не добавлен!";

}else

$msg="Добавления категорий!";

?>

Приложение Д

Исходный код функции добавления товаров:

<?php

require_once ('../helpers/config.php');

if (isset($_POST['label'])&&isset($_FILES['image'])&&isset($_POST['category_id'])&&isset($_POST['about'])&&isset($_POST['count'])&&isset($_POST['price']))

{

$label=f_screening($_POST['label']);

$about=f_screening($_POST['about']);

$category_id=f_screening($_POST['category_id']);

$count=f_screening($_POST['count']);

$price=f_screening($_POST['price']);

$fname=basename($_FILES["image"]["name"]);

$uploadfile = "../public//images//$fname";

move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile);

$sql="INSERT INTO `tovary`(`label`, `price`, `category_id`, `image`, `count`, `about`) VALUES ('$label',$price,$category_id,'$fname',$count,'$about');";

if (insert($connection, $sql))

{

$msg="Добавлен!";

}else

$msg="Не добавлен!";

}else

$msg="Добавления товара!";

?>

<div class="topnav">

<a href="./index.php">Админ</a>

<a href="./category_show.php">Категории товаров</a>

<a href="./tovary_add.php">Добавить товар</a>

<a href="./signin.php?logaut=on">Выход</a>

</div>

<div class="login-page">

<div class="form">

<form method="post" action="" enctype="multipart/form-data">

<p style="text-align: center;color: red" >

<?php

if(isset($msg)) echo $msg;

?>

</p>

<input type="text" name="label" placeholder="Названия товара" required/>

<label>Описания товара

</label>

<textarea name="about" required="">

</textarea>

<label>Категория товара

<select name="category_id" required="">

<option value=""></option>

<?php

$category=qwerty($connection,"SELECT * FROM `tovar_category`");

while ($row=mysqli_fetch_row($category))

{

echo "<option value='".$row[0]."'>".$row[1]."</option>";

}

?>

</select>

</label>

<input type="text" name="price" placeholder="Цена товара за штуку" required=""/>

<input type="number" name="count" placeholder="Количество товара в наличии" required=""/>

<label>Изображения товара

<input type="file" name="image"

required="required" >

</label>

<button>Добавить</button>

</form>

</div>

</div>

Приложение Е

Реализация функции корзины:

<?php

session_start();

require_once ('../helpers/config.php');

if (isset($_GET['tovar_id'])&&isset($_GET['count']))

{

$tovar_id= intval($_GET['tovar_id']);

$count= intval($_GET['count']);

$sql="SELECT `id`, `price`,`count`,`label` FROM `tovary` WHERE `id`=$tovar_id and `count`>=$count";

$category=qwerty($connection,$sql);

$row=mysqli_fetch_row($category);

if ($row!=null)

{ print_r($row);

$bascet = array('id' => $row[0],'price' => $row[1],'count' => $count,'label'=>$row[3]);

if (!isset($_SESSION['bascet'])&&!isset($_SESSION['bascet_price']))

{

$_SESSION['bascet_price']=0;

$_SESSION['bascet']= array(0 => $bascet);

$_SESSION['bascet_price']+=$row[1];

}else

{ $i=0;

foreach ($_SESSION['bascet'] as $name)

{

if ($name["id"]==$bascet["id"])

{

$i=$i+1;

}

}

if ($i==0) {

array_push($_SESSION['bascet'],$bascet);

$_SESSION['bascet_price']+=$row[1];

}

}

die();

}else

echo "Не правильное количестов";

die();

}

if (isset($_SESSION['bascet'])&&isset($_GET['delit']))

{

$delit=intval($_GET['delit']);

$bascet=$_SESSION['bascet'];

$bascet_price=$_SESSION['bascet_price'];

if (count($_SESSION['bascet'])==1)

{

unset($_SESSION['bascet'][count($_SESSION['bascet'])]);

}

$i=0;

foreach ($bascet as $name)

{

if (intval($name["id"])==$delit)

{

$_SESSION['bascet_price']-=$name["price"];

$_SESSION['bascet'][$i]=null;

}

$i=$i+1;

}

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

}

?>

<!DOCTYPE html>

<html>

<head>

<title></title>

<link rel="stylesheet" href="../public/css/style_for_forms.css">

<link rel="stylesheet" href="../public/css/grid.css">

</head>

<body>

<div class="topnav">

<a href="../index.php">Домой</a>

<?php

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

{

?>

<a href="../signin.php">Вход</a>

<a href="../signup.php">Регистрация</a>

<?php

}else{

echo ' <a href="./index.php">Профиль</a>';

echo ' <a href="../signin.php?logaut=on">Выход</a>';

}

if (isset($_SESSION['bascet'])&&isset($_SESSION['bascet_price']))

{ if ($_SESSION['bascet_price']>=0) {

echo "<a href='./bascet.php'>Корзина: ".$_SESSION['bascet_price']." р.</a>";

}}

?>

</div>

<div class="grid-container">

<?php

if (isset($_SESSION['bascet'])&&isset($_SESSION['bascet_price']))

{

$bascet=$_SESSION['bascet'];

$bascet_price=$_SESSION['bascet_price'];

$i=0;

foreach ($bascet as $name)

{

if ($name!=null)

{

echo '<div class="grid-item">';

echo $name["label"]."<br>Цена: ".$name["price"]." р.<br>количество: ".$name["count"];

$i=$name["id"];

echo "ш.<br><a href='./bascet.php?delit=$i'>Удалить</a><br>";

echo "</div>";

}

}

if ($bascet_price>0)

{

echo '<div class="grid-container grid-item">';

echo "Общая сумма: $bascet_price р.<a href='./client.php' class='grid-item'>Оформить</a></div>";

}

}

?>

</div >

</body>

</html>