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

Разработка сайта издательского дома «Book 24

Содержание:

ВВЕДЕНИЕ

Данная курсовая работа имеет отношение к сфере торговли. Исследуемое предприятие компания «Book 24», которая осуществляет продажу книг.

В настоящее время имеется онлайн-магазин так как компания не имеет помещения для продажи книг.

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

Цель данной курсовой работы – разработка онлайн магазина «Book 24», которая осуществляет торговлю книгами.

Задачи курсовой:

  • Создать тестовый онлайн-магазин.

Объектом исследования является компания «Book 24», торгующая книгами.

Предмет исследования – онлайн-магазин компании.

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

Курсовая работа разбита на разделы.

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

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

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

Раздел 4 содержит описание структуры сайта и взаимодействие элементов сайта с серверным приложением. Раздел отражает процесс проектирования программного обеспечения клиентской части задачи содержит:

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

1 Техническое задание и выбор средств реализации.

1.1 Техническое задание.

Требования: при помощи языков программирования HTML, PHP и CSS создать онлайн-магазин компании «Book 24», осуществляющей торговлю книгами. Онлайн-магазин должен размещать данные о компании, каталог продукции, контактные данные компании.

Онлайн-магазин должен содержать две важные части: пользовательская (доступная пользователям) и административная (доступная администраторам).

Система должна предусмотреть возможность редактирования администратору сайта и базы данных.

Онлайн-магазин должен содержать интерфейс, который понятен посетителю.

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

Весь дизайн сайта должен быть управляем при помощи таблицы стилей CSS.

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

При реализации проекта должны выполняться следующие условия:

База данных должна включать не менее 8-и таблиц. Используется phpMyAdmin.

В качестве веб-сервера используется Apache 2.4.x.

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

Дополнительные требования:

Сайт должен содержать следующие разделы:

  • Книги

1.2 Выбор средств реализации

Язык разметки гипертекстовых страниц HTML.

HTML-документы — это файлы с расширением .html или .htm. Просматривать их можно с помощью любого браузера (например, Safari, Mozilla Firefox, Google Chrome). Браузер считывает HTML-файл и отображает его содержимое, чтобы те, кто пользуются интернетом, могли просмотреть его содержимое.

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

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

«Используя HTML, мы помечаем содержимое тегами, чтобы придать ему структуру. Мы называем соответствующие теги и их содержимое элементом».

Большинство HTML-тегов имеют элемент открытия и закрытия, в которых используется следующий синтаксис <tag> </tag>.

Ниже вы можете увидеть пример HTML- кода, с помощью которого можно структурировать элементы HTML-страницы:

<div>

<h1> Основная рубрика </h1>

<h2> Броский подзаголовок </h2>

<p> Пункт 1 </p>

<img src = "/" alt = "Изображение">

<p>Пункт с гиперссылкой <a href="https://example.com"></a></p>

</div>

Основной элемент — это простая пара тегов (<div> </div>), которую используют для разметки больших блоков контента.

Такие блоки могут содержать заголовок (<h1> </h1>), подзаголовок (<h2> </h2>), абзацы (<p> </p>) и изображения (<img>).

Второй абзац в нашем примере содержит гиперссылку (<a> </a>) с атрибутом href, который указывает целевой URL.

Тег изображения имеет два параметра: src для указания пути к изображению и alt для его описания.

Обзор часто используемых HTML-тегов

1.3 Блочные и строчные элементы

Большинство элементов либо блочные, либо строчные. В чём разница?

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

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

Теги блочного уровня

Три обязательных тега уровня блока, которые каждый HTML-документ должен содержать: <html>, <head> и <body>.

Тег <html> </html> - это элемент самого высокого уровня, который охватывает любую HTML-страницу.

<html>

<head>

<!-- META INFORMATION -->

</head>

<body>

<!-- PAGE CONTENT -->

</body>

</html>

Тег <head> </head> содержит информацию с мета-тегами, такую ​​как заголовок страницы, ее описание и кодировка.

И, наконец, тег <body> </body> включает в себя всё содержимое, отображаемое на странице.

Основы CSS

CSS (Cascading Style Sheets), или каскадные таблицы стилей, используют для описания внешнего вида HTML-страницы, написанной языком разметки. Обычно CSS-стили используют для создания и изменения стиля отображения элементов веб-страниц, написанных на языках HTML и XHTML, но также они могут быть применены к любому виду XML-документа, в том числе XML, SVG и XUL.

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

Объявление стиля состоит из двух частей: тега веб-страницы - селектора, и команды форматирования – самого блока объявления. Селектор посылает информацию браузеру, какой именно элемент нужно форматировать, а в блоке объявления (это код в фигурных скобках) перечисляются списком форматирующие команды — свойства и их значения через двоеточие (см. Рисунок).

css_osnovy

Рисунок 1. Структура объявления CSS-стиля.

Виды каскадных таблиц стилей и их специфика

Внешняя таблица стилей – это текстовый файл с расширением .css, который содержит в себе набор CSS-стилей элементов. Файл создается в текстовом редакторе кода подобно HTML-странице. Внутри файла содержатся только стили, исключая HTML-разметку. Внешняя таблица стилей присоединяется к веб-странице при помощи тега <link>, который расположен внутри раздела <head></head>.

К одной веб-странице можно присоединить несколько внешних таблиц стилей, добавляя несколько тегов <link>, указав параметром тега media назначение данной таблицы стилей. Параметр rel="stylesheet" указывает тип ссылки (это ссылка на таблицу стилей).

<head>

<link rel="stylesheet" href="css/style.css">

<link rel="stylesheet" href="css/assets.css" media="all">

</head>

Атрибут type="text/css" не является обязательным согласно стандарту HTML5, следовательно, его можно не указывать. Если этот атрибут не указан, то по умолчанию используется значение type="text/css".

<head>

<style>

h1,

h2 {

color: red;

font-family: "Times New Roman", Georgia, Serif;

line-height: 1.3em;

}

</style>

</head>

<body>

...

</body>

Внутренние стили можно встраивать в раздел <head></head> HTML-страницы и определить внутри тега <style></style>. Внутренние стили имеют приоритет над внешними таблицами, но уступают встроенным (которые заданы через атрибут style).

Встроенные стили

Когда используются встроенные стили, CSS-код пишется прямо в HTML-файл, непосредственно внутри тега элемента с помощью атрибута style:

Такие стили действуют непосредственно на тот элемент, внутри которого они заданы.

<p style="font-weight: bold; color: red;">Обратите внимание на этот текст.</p>

PHP

Проект выполняется с помощью языка программирования PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; изначально Personal Home Page Tools — «Инструменты для создания персональных интернет-страниц»; произносится «пи-эйч-пи») - язык программирования общего назначения, в главным образом применяемый для разработки веб-приложений. Сегодня поддерживается подавляющим большинством провайдеров и является одним лидером среди языков программирования, которые применяющихся для разработки динамических веб-сайтов.

«Применение языка, подобного PHP и такой базы данных, как MySQL, позволяет делать сайты динамическими: они могут настраиваться и содержать информацию, изменяющуюся в реальном времени». [11, с. 27]

PHP специально создан для веб-разработок, и его код может внедряться непосредственно в HTML.

Простой ответ, но что же он может означать? Вот пример PHP кода:

<!DOCTYPE HTML>

<html>

<head>

<title>Пример</title>

</head>

<body>

<?php echo "Привет, я - скрипт PHP!"; ?>

</body>

</html>

PHP отличается от языка JavaScript тем, что его скрипты выполняются на сервере и генерируют код HTML, посылаемый клиенту. Если на сервере размещен вышеприведенный скрипт, клиент получает только результат его выполнения, но не может выяснить, какой именно код его создал.

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

Хотя PHP, главным образом, предназначается для работы в среде интернет-серверов, область его применения не ограничивается только этим.

MYSQL

MySQL — это популярный сервер баз данных, который используется в различных приложениях. Аббревиатура SQL означает «язык структурированных запросов» - (S)tructured (Q)uery (L)anguage, который MySQL использует для взаимодействия с другими программами. Более того, MySQL имеет свои собственные встроенные функции для того, чтобы обеспечить разработчикам дополнительный функционал.

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

Особую помощь проекту оказала CSS–библиотека BOOTSTRAP, которая отвечает за адаптивный дизайн сайта.

Bootstrap (или же Twitter Bootstrap) – библиотека, вмещающая в себе набор стилей, классов и скриптов для создания сайтов. В библиотеке можно найти массу шаблонов, использование которых не составит особого труда.

Bootstrap (также известен как Twitter Bootstrap) — свободный набор инструментов для создания сайтов и веб-приложений. Включает в себя HTML- и CSS-шаблоны оформления для типографики, веб-форм, кнопок, меток, блоков навигации и прочих компонентов веб-интерфейса, включая JavaScript-расширения.

«Адаптивная вёрстка сайта позволяет веб-страницам автоматически подстраиваться под экраны планшетов и смартфонов. Мобильный интернет-трафик растёт с каждым годом, и чтобы эффективно обрабатывать этот трафик, нужно предлагать пользователям адаптивные сайты с удобным интерфейсом».

2. Описание модулей серверной части программы и их взаимодействие.

2.1 Описание пользовательской части.

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

Онлайн-магазин компании «Book 24» содержит следующие разделы:

  • Главная;
  • Книги;
  • Регистрация;
  • Авторизация;
  • Корзина.

Организационная структура онлайн-магазина представлена на диаграмму 1.

Диаграмма 1 – Организационная диаграмма онлайн-магазина.

2.1.2 Основные программные модули.

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

Таблица 1 Описание программных модулей.

Имя файла

Описание

index.php

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

db_fns.php

Меню

cart_fns.php

Модуль корзины

Log.php

Модуль авторизации

Shop.php

Контент меню

Далее будет представлена иерархическая структура пользовательской части онлайн-магазина с подключением модулей. (см. Диаграмму 2).

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

2.2 Описание административной части.

2.2.1 Структура административной части онлайн магазина.

Административная часть онлайн-магазин компании «Book 24» содержит следующие разделы:

  • Добавить запись;
  • Редактировать запись;
  • Статистика;
  • На главную.

2.2.1 Основные программные модули.

Основные программные модули административной части сайта и их описание представлены в Таблице 2.

Таблица 2 Описание программных модулей административной части.

Имя файла

Описание

Adminstart.php

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

Admin1.php

Модуль добавление записи

Admin2.php

Модуль редактирование записи

Admin3.php

Модуль статистики

Admin4.php

Модуль списка заказов

Далее будет представлена иерархическая структура административной части онлайн-магазина (см. Диаграмма 3).

Диаграмма 3 - Иерархическая структура вызова программных модулей административной части онлайн магазина.

3.Описание структуры базы данных и ее функции

3.1 Описание структуры базы данных.

В базе данных проекта насчитывается 11 таблиц. Их названия и описание полей вместе с описанием индексов и связей представлены в Таблица 3.

Таблица 3 – Таблицы базы данных

Таблица

Поле

Тип

Описание

индекс

Сategoties "Категории"

id

int(11)

Индефикатор

PRIMARY

name

varchar(100)

Наименования

cat_id

varchar(100)

Наименование

Ordes "Заказы"

id

int(11)

Индефикатор

PRIMARY

product

varchar(100)

Наименования

prod_id

int(11)

Индефикатор

price

decimal(8,2)

Цена

qty

varchar(10)

Количества

name

varchar(100)

Имя

s_name

varchar(100)

Фамилия

address

varchar(100)

Адрес

email

varchar(100)

Електронная почта

date

date

Дата

time

time

Время

Product "Продукт"

id

int(11)

Индефикатор

PRIMARY

title

varchar(100)

Название

description

text

Описание

price

int(11)

Цена

image

varchar(100)

Файл изображения

cat

varchar(100)

Категория

Registration "Регистрация"

surname

varchar(100)

УЗ

name

varchar(100)

Имя

address

varchar(100)

Адрес

e-mail

varchar(100)

Электронная почта

login

varchar(100)

Логин

PRIMARY

password

varchar(100)

Пароль

В проекте используется реляционные (связанные между собой) таблицы базы данных. Например, каждый товар имеет свою одну категорию. В это же время одна категория содержит в себе много товаров. Такой тип связи называется «один-ко-многим».

Далее рассмотрим тип связи «многие-ко-многим». В нашем проекте есть и такой тип связи. Один заказ может содержать много товаров. Один товар может быть соотнесен к многим заказам. Чтобы реализовать подобный тип связи, необходимо создать третью таблицу-связку, которая будет содержать в одной записи код товара и код заказа.

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

Данная ER-диаграмма представлена на Диаграмма 4.

Диаграмма 5 – ER-диаграмма базы данных проекта.

3.2 Пользовательские функции и запросы к базе данных.

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

Вся работа админпанели построена на принципе CRUD (от сочетания английских слов «create» , «read», «update», «delete»). Это основные функции работы с таблицами – создание, просмотр, редактирование и удаление записей.

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

Тип запроса к таблице базы данных, применяемый в этой функции – SELECT.

Вот пример запроса к таблице категорий:

SELECT id, name, image, (SELECT name FROM category WHERE id = C.parent_id) AS parent_id FROM category AS C WHERE 1 ORDER BY id

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

Функции updateform и update в каждом модуле административной части отвечает за редактирование всех записей в таблице.

Функция updateform c входным параметром id применяет SELECT-запрос, доставая из таблицы запись с идентификатором id. В ней создается форма ввода данных, заполненная из таблицы. Данные можно редактировать и отсылать на сервер для обработки функцией update посредством POST-запроса.

Функция update обрабатывает POST-запрос и сохраняет данные в таблице

Тип запроса к таблице базы данных, применяемый в этой функции – UPDATE.

Вот пример запроса к таблице категорий:

Функция insertform вызывает updateform без параметров, и тем самым создается пустая форма ввода для создания новой категории, которая передает управление функции insert.

UPDATE category SET name = 'Бытовая техника', parent_id = '1', image = 'uploads/cat1.jpg' WHERE id=2

Функция insert обрабатывает POST-запрос и создает новую запись в таблице

Тип запроса к таблице базы данных, применяемый в этой функции – INSERT.

Вот пример запроса к таблице категорий:

INSERT INTO category (name, parent_id, image) VALUES (‘Новая категория’, 1, ‘myimage.jpg’)

Функция delete удаляет запись из таблицы по идентификатору

Тип запроса к таблице базы данных, применяемый в этой функции – DELETE.

Вот пример запроса к таблице категорий:

DELETE FROM category WHERE id = 10

4. Описание структуры клиентской части.

В данном разделе будет рассмотрена структура клиентской части онлайн-магазина. В данном разделе будет рассмотрена структура клиентской части промо-сайта. К клиентской части относится та часть сайта, которая отображается с помощью HTML-кода в браузере пользователя.

Главная страница сайта вот такой вид (

Рисунок 2 Главная страница сайта.

Раздел регистрация Рисунок 3.

Рисунок 3 Окно регистрации.

На Рисунке 4 информация о товаре и возможность поместить его в корзину.

Рисунок 4 Информация о товаре.

Окно авторизации изображено на Рисунке 5.

Рисунок 5 Окно авторизации.

Когда пользователь сделал выбор книг, то он переходит во вкладку корзина, где он сверяется со своим выбором, а дальше он оформляет его. Это представлено на Рисунке 6.

Рисунок 6 Корзина и оформление заказа.

ЗАКЛЮЧЕНИЕ

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

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

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

Основные положения теоретической части проекта:

  • Был проведен анализ исходных данных и разработка технического задания;
  • Было произведён выбор программного обеспечения;

Основные положения практической части проекта:

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

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

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

Итак, перед разработчиком была поставлена цель: создание сайта компании «Book 24». Гипотеза о том, что данная тема исследования важна и необходима, была подтверждена аналитически и реализован проект согласно этой гипотезе практически.

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

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

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

Общая концепция сайта

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

Дизайн

Сайт содержит единый дизайн на всем страницах. Интерфейс дружественный для посетителя и понятен даже неопытным пользователям. Дизайн сайта управляем каскадными стилями CSS и является адаптивным для всех типов устройств.

Набор веб–разработчика и локальный сервер

Для реализации проекта использован локальный сервер «Openserver».

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

Другими словами, openserver позволяет полностью эмулировать работу сайта на локальном компьютере, что существенно упрощает разработку и реализацию проекта.

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

Особую помощь проекту оказала CSS–библиотека BOOTSTRAP, которая отвечает за адаптивный дизайн сайта.

В целом, проект успешно реализован и полностью работоспособен.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Ipipe.ru Установка OpenServer. [Электронный ресурс] // iPipe.ru. - https://www.ipipe.ru/info/ustanovka-openserver.html

2. HTML5BOOK.RU Адаптивная верстка сайта [Электронный ресурс] // HTML5BOOK.RU. - https://html5book.ru/adaptivnaya-vyorstka-sayta.

3. WebReference Уроки по HTML и CSS [Электронный ресурс] // WebReference. - https://webref.ru/layout/learn-html-css.

4. Open Server — профессиональный инструмент веб-разработчика под Windows [Электронный ресурс] // Википедия. - https://habr.com/ru/post/137388

5. PHP, SQL [Электронный ресурс] / блог. - Россия, 2010.: http://phpsql.ru/.

6. PHPForum [Электронный ресурс] /форум.- Россия, 2003. - Режим доступа: http://phpforum.ru. - Дата доступа: 09.02.2012.

7. Богданов, М.Р. Перспективные языки веб-разработки / М.Р. Богданов. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016

8. Википедия Bootstrap_(Фреймворк) [Электронный ресурс] https://ru.wikipedia.org/wiki/Bootstrap_(Фреймворк)

9. Гущин А.Н. Базы данных: учебник. - М.: Директ-Медиа, 2014. - 266с

10. Мазуркевич, А. PHP: настольная книга программиста / А. Мазуркевич. - М.: Новое знание, 2003. - 480 с.

11. Макфарланд Д. Большая книга CSS. 3-е изд. [Текст]. - СПб : Питер, 2014. - 608 стр.

12. Мейер, Б. Инструменты, алгоритмы и структуры данных / Б. Мейер. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016.

13. Никсон, Р. Создаем динамические web-сайты с помощью PHP, MySQL и JavaScript / Р. Никсон. - П.: Питер, 2011. - 496 с.

14. Парк, Д. PHP и MySQL. Библия программиста / Д. Парк, С. Суэринг. - Диалектика, 2010. - 912 с.

15. Прохоренок, Н. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера / Н. Прохоренок. - СПб.: БХВ - Петербург., 2010. - 900 с.

16. Савельева, Н.В. Язык программирования PHP / Н.В. Савельева. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016

17. Томсон, Л. Разработка Web-приложений на РНР и MySQL/ Л. Томсон. - М.: ДиаСофтЮП, 2003. - 672 с.

18. Филиппов, С.А. Основы современного веб-программирования [Электронный ресурс].— М. : НИЯУ МИФИ, 2011 .— 160 с.

19. Фримен Эрик и Робсон Элизабет Изучаем HTML, XHTML [Текст]. - СПб : Питер, 2014. – 720 стр.

20. Харрис, Э. PHP/MySQL для начинающих / Э. Харрис. - М.: Кудиц - образ, 2005.

ПРИЛОЖЕНИЯ

Приложение А.

Код программного файла reg.php

<head>

<link href="style/css1.css" rel="stylesheet" type="text/css" />

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Магазин</title>

</head>

<h2 class="cart_name" align="center">Регистрация</h2>

<form action="reg.php" method="get">

<table id="mycart" align="center" cellspacing="0" cellpadding="0" border="0">

<tr><td align="right"><b>Фaмилия: </b></td><td> <input type="text" name="sur"></td></tr>

<tr><td align="right"><b>Имя: </b></td><td> <input type="text" name="name"></td></tr>

<tr><td align="right"><b>Aдpec: </b></td><td><input type="text" name="addr"></td></tr>

<tr><td align="right"><b>E-mail: </b></td><td><input type="text" name="e_mail"></td></tr>

<tr><td align="right"><b>Лoгин: </b></td><td> <input type="text" name="login"></td> </ tr >

<tr><td align="right"><b>Пapoль: </b></td><td> <input type="password" name="password"></td></tr>

<tr><td align="right"><b>Повтор пароля: </b></td><td> <input type="password" name="pass"></td></tr>

<tr><td align="right"></td><td> <input name="add" type=submit value="Добавить запись"></td></tr>

</td></tr>

</table>

</form>

<?php

if(isset($HTTP_SESSION_VARS["log"]))

{

print $HTTP_SESSION_VARS["log"];

}

require 'connect.php';

if (isset($_GET['add'])){

$sur = $_GET['sur'];

$name = $_GET['name'];

$addr = $_GET['addr'];

$e_mail = $_GET['e_mail'];

$login = $_GET['login'];

$password = $_GET['password'];

$pass = $_GET ['pass'];

if($sur!="" && $name!="" && $addr!="" && $e_mail!="" && $login!="" && $password!="" && $pass!="")

{

if($password!=$pass)

{

echo"<p align='center'><b> Поля пароля и повтора пароля не coвпaдaют!</b></p>";

}

else

{

$strSQL1="SELECT * FROM registration WHERE login='".$login."'";

$resultl=mysqli_query($connection,$strSQL1)

or die("He могу выполнить зaпpoc!");

if($row=mysqli_fetch_array($resultl))

{

echo"<p align='center':<b>Такой логин уже сущeствуeт! Bыбeритe другой лoгин.</b></p>";

}

else

{

$strSQL1="INSERT INTO registration

(`surname`,`name`,`address`,`e-mail`, `login`, `password`) VALUES('$sur', '$name', '$addr', '$e_mail', '$login', '$password')";

$resultl=mysqli_query($connection,$strSQL1)

or die("He могу выполнить запрос!");

echo "<p align='center':><b> Вы успешно зaрeгистрирoвaны!</b></p>";

}

}

}

else

echo "<p align='center':><b>He все поля зaпoлнeны!!!</b></p>";

}

?>

<p align="center"><a href="index.php">На главную</a></p>

Приложение Б.

Дамп базы данных проекта test.sql

-- phpMyAdmin SQL Dump

-- version 5.0.4

-- https://www.phpmyadmin.net/

--

-- Хост: 127.0.0.1

-- Время создания: Дек 07 2020 г., 00:30

-- Версия сервера: 10.4.16-MariaDB

-- Версия PHP: 7.3.24

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

START TRANSACTION;

SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8mb4 */;

--

-- База данных: `test`

--

-- --------------------------------------------------------

--

-- Структура таблицы `categories`

--

CREATE TABLE `categories` (

`id` int(11) NOT NULL,

`name` varchar(100) NOT NULL,

`cat_id` varchar(100) NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--

-- Дамп данных таблицы `categories`

--

INSERT INTO `categories` (`id`, `name`, `cat_id`) VALUES

(1, 'Книги', 'Book');

-- --------------------------------------------------------

--

-- Структура таблицы `orders`

--

CREATE TABLE `orders` (

`id` int(11) NOT NULL,

`product` varchar(100) NOT NULL,

`prod_id` int(11) NOT NULL,

`price` decimal(8,2) NOT NULL,

`qty` varchar(10) NOT NULL,

`name` varchar(100) NOT NULL,

`s_name` varchar(100) NOT NULL,

`address` varchar(100) NOT NULL,

`email` varchar(100) NOT NULL,

`date` date NOT NULL,

`time` time NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--

-- Дамп данных таблицы `orders`

--

INSERT INTO `orders` (`id`, `product`, `prod_id`, `price`, `qty`, `name`, `s_name`, `address`, `email`, `date`, `time`) VALUES

(9, '100 записок о развитии', 5, '744.00', '1', '100 записок о развитии', 'test', 'test', 'test', '2020-12-04', '20:36:39');

-- --------------------------------------------------------

--

-- Структура таблицы `products`

--

CREATE TABLE `products` (

`id` int(11) NOT NULL,

`title` varchar(100) NOT NULL,

`description` text NOT NULL,

`price` int(11) NOT NULL,

`image` varchar(100) NOT NULL,

`cat` varchar(100) NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--

-- Дамп данных таблицы `products`

--

INSERT INTO `products` (`id`, `title`, `description`, `price`, `image`, `cat`) VALUES

(1, 'Тюремный дневник', 'Российская студентка Мария Бутина была арестована в Вашингтоне в июле 2018 года по обвинению в работе иностранным агентом в США без регистрации. Полтора года тюрьмы, четыре месяца одиночных камер и пыток, более 50 часов допросов в бетонном бункере, 1200 страниц зашифрованных записей тюремных дневников, которые удалось вывезти в Россию после освобождения. Об этой истории писали средства массовой информации всего мира, но никто так и не смог ответить на вопрос, кем же на самом деле является Мария Бутина – преступницей или жертвой?\r\n\r\nВ своей автобиографической книге Мария, наконец, рассказала всю правду. Перед вами абсолютно уникальный материал – восстановленный тюремный дневник и самая невероятная история русской заключенной в США, написанная ею самой.\r\n\r\nКак выжить в экстремальных условиях тюрьмы, да еще находясь в чужой стране? Что спасало Марию в одиночных камерах? Какими она увидела арестантов США и как сумела завоевать их доверие и даже получить поддержку? И кем на самом деле является Мария Бутина?', 505, 'oblozhka-knigi-tyuremnyy-dnevnik-323713.jpg', 'book'),

(2, 'Сияние', 'Проходят годы, десятилетия, но потрясающая история писателя Джека Торранса, его сынишки Дэнни, наделенного необычным даром, и поединка с темными силами, обитающими в роскошном отеле \"Оверлук\", по-прежнему завораживает и держит в неослабевающем напряжении читателей самого разного возраста…', 1000, '22747034.jpg', 'book'),

(3, 'Щегол', 'Роман, который лауреат Пулитцеровской премии Донна Тартт писала более 10 лет, — огромное эпическое полотно о силе искусства и о том, как оно — подчас совсем не так, как нам того хочется — способно перевернуть всю нашу жизнь. 13-летний Тео Декер чудом остался жив после взрыва, в котором погибла его мать. Брошенный отцом, без единой родной души на всем свете, он скитается по приемным домам и чужим семьям — от Нью-Йорка до Лас-Вегаса, — и его единственным утешением, которое, впрочем, чуть не приводит к его гибели, становится украденный им из музея шедевр голландского старого мастера.', 642, '673078.750x0.jpg', 'book'),

(4, 'Гидеон из Девятого дома', 'Мир \"Гидеон из Девятого дома\" Тэмсин Мьюир это вселенная звездолетов, далеких солнц, мастеров фехтования, жестокой политики и лесбиянок-некромантов.\r\n\r\nВоспитанная недружелюбными, окостеневшими монахинями, древними слугами и бесчисленными скелетами, Гидеон готова предать традиции и отказаться от рабства и загробной жизни в качестве живого мертвеца. Она зачехляет свой меч и готовится к дерзкому побегу. Но у Немезиды для нее другие планы.\r\n\r\nХаррохак Нонагесимус, Преподобная дочь Девятого дома и экстраординарная костяная ведьма, отправляется в бой. Император призвал наследников каждого из верноподданных Домов на смертельный поединок - испытание ума и мастерства. Если Харрохак преуспеет, она станет бессмертной всемогущей слугой Бога Воскрешения. Но ни один некромант не может выступить без своего рыцаря. Без рапиры Гидеон, Харроу потерпит неудачу и Девятый дом вымрет.', 0, 'portletResources.jpg', 'book'),

(5, '100 записок о развитии', 'Эта книжка о том, как перейти от развития через преодоление к развитию через удовольствие. Она для тех, кто хочет совершенствоваться не от проблемы к проблеме, а через путешествие из хорошего в лучшее. Эта книжка о том, какие осознания происходят с человеком на дороге перемен. О том, как преумножать любовь и через это изменить жизнь.', 744, 'cover1__w190.jpg', 'book'),

(6, 'Институт', 'Еще недавно у двенадцатилетнего Люка Эллиса была вполне привычная жизнь: школа, обеды с родителями в любимой пиццерии, вечера в компании лучшего друга… Пока одним июньским утром он не просыпается в собственной комнате, вот только в ней нет окон и находится она в тщательно укрытом от всего мира месте под названием \"Институт\".', 613, 'M7r5vYS_wig.jpg', 'book'),

(7, 'Настоящий мужик. История парня из Anthrax', 'Перед вами увлекательнейшая история о том, как простой еврейский мальчик стал одним из родоначальников музыкального жанра. Скотт повидал многое, фактически на его глазах формировалась легендарная группа METALLICA, с музыкантами которой он крепко дружит по сей день — даже предисловие написал его закадычный друг Кирк Хэмметт. Образованные в 1981-м году, ANTHRAX наряду с METALLICA, SLAYER и MEGADETH являются одними из представителей \"Большой Четверки\". Все четыре команды в середине 80-х добились коммерческого успеха, выведя в массы музыку, которая, казалось бы, обречена остаться в андеграунде.\r\n\r\nСкотт Ян пользуется непререкаемым авторитетом в мире тяжелой музыки и по праву является заслуженным ветераном жанра. В этой книге он увлеченно и весело рассказывает о детстве и юности в грязном Нью-Йорке 70-х, взлетах и падениях ANTHRAX: вы проследите весь путь группы от школьных выступлений до концертов на стадионах во всем мире.\r\n\r\nАвтобиография фронтмена легендарной металл-группы ANTHRAX Скотта Яна!', 579, 'coverbig.jpg', 'book'),

(8, 'Наглец', 'Она ворвалась в его жизнь и спутала все карты. Взбалмошная, неуправляемая, сумасшедшая девчонка. Напрасно она перешла ему дорогу. Теперь ей придется играть по его правилам. И не только потому, что он всегда добивается желаемого. У него на руках – козырь, закрыть глаза на который она точно не сможет.', 331, 'kniga-naglec.jpg', 'book');

-- --------------------------------------------------------

--

-- Структура таблицы `registration`

--

CREATE TABLE `registration` (

`surname` varchar(100) NOT NULL,

`name` varchar(100) NOT NULL,

`address` varchar(100) NOT NULL,

`e-mail` varchar(100) NOT NULL,

`login` varchar(100) NOT NULL,

`password` varchar(100) NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--

-- Дамп данных таблицы `registration`

--

INSERT INTO `registration` (`surname`, `name`, `address`, `e-mail`, `login`, `password`) VALUES

('admin', 'admin', 'admin', 'admin', 'admin', 'admin'),

('test', 'test', 'test', 'test', 'test', 'test');

--

-- Индексы сохранённых таблиц

--

--

-- Индексы таблицы `categories`

--

ALTER TABLE `categories`

ADD PRIMARY KEY (`id`);

--

-- Индексы таблицы `orders`

--

ALTER TABLE `orders`

ADD PRIMARY KEY (`id`);

--

-- Индексы таблицы `products`

--

ALTER TABLE `products`

ADD PRIMARY KEY (`id`);

--

-- Индексы таблицы `registration`

--

ALTER TABLE `registration`

ADD PRIMARY KEY (`login`);

--

-- AUTO_INCREMENT для сохранённых таблиц

--

--

-- AUTO_INCREMENT для таблицы `categories`

--

ALTER TABLE `categories`

MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--

-- AUTO_INCREMENT для таблицы `orders`

--

ALTER TABLE `orders`

MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--

-- AUTO_INCREMENT для таблицы `products`

--

ALTER TABLE `products`

MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19;

COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;