Лабораторные работы 4-6 по дисциплине "Проектирование информационных систем с применением web-технологий" (8 семестр)
Разработан сайт для интернет-магазина компьютерной техники. Сайт имеет следующую структуру:
- Главная страница "Каталог товаров"
1.1 Страница "Статистика"
1.2 Страница "Информация"
1.3 Страница "Карточка товара"
1.4 Страница "Личный кабинет"
1.5 Страница "Корзина товаров"
1.6 Страница администратора "Администратор"- Страница "Заказы клиентов"
- Страница "Добавление типов и производителей"
- Страница "Изменение списка товаров"
Видео с работой сайта.
Данные для сайта расположены в базе данных.
Подключение базы данных реализуется в отдельном файле "database.php".
$par1_ip = "127.0.0.1";
$par2_name = "root";
$par3_p = "";
$par4_db = "shop";
//Подключение к БД
$induction = mysqli_connect($par1_ip, $par2_name, $par3_p, $par4_db);На страницах "Каталог товаров", "Статистика" и "Информация" реализовано модальное окно для регистрации и авторизации. Реализация осуществлена с помощью функции, прописанной в отдельном файле "source.php". В окне реализована капча, также присутствует защита от SQL-инъекций, проверка на пустые поля.
Реализована работа с сессией для хранения идентификатора зарегистрированного пользователя и факта входа в личный кабинет для подсчета статистики. Подключение осуществляется в файле "session.php".
//Начало сессии
session_start();
...
//Работа с сессией
$_SESSION["Вход"] = "Да";
...
//Закрытие сессии при выходе из ЛК
session_destroy();- Страница "Каталог товаров"
Файл "index.php". Вход осуществляется по ссылке из меню. Каталог товаров выводится из таблицы "Товары". На странице реализован фильтр по производителям и типам товаров, а также добавление в корзину нескольких товаров.
- Страница "Статистика"
Файл "statistics.php". Вход осуществляется по ссылке из меню. Содержит информацию о посещениях сайта, а также о проценте зарегистрированных пользователей. Соответствующая информация хранится в таблице "Статистика".
- Страница "Информация"
Файл "contacts.php". Вход осуществляется по ссылке из меню. На странице содержится описание компании, контактные данные и форма с применением почтового сервера.
- Страница "Карточка товара"
Файл "product.php". Вход осуществляется по ссылке на товар в любом месте сайта. Содержит полную информацию о выбранном товаре. Информация берется из таблицы "Товары". На странице имеется возможность добавления товара в корзину.
- Страница "Личный кабинет"
Файл "cabinet.php". Вход осуществляется по ссылке "Личный кабинет" после авторизации в модальной форме. Содержит информацию о клиенте, взятую из таблицы "Клиент". Имеется возможность изменять личные данные, просматривать и удалять историю покупок.
- Страница "Корзина товаров"
Файл "basket.php". Вход осуществляется по ссылке "Корзина". Содержит данные из временной таблицы "КорзинаБуф" со списком товаров, добавленных в корзину. Имеется возможность отчистки корзины и оформления заказа. Оформление заказа возможно только после входа в личный кабинет.
- Страница "Администратор"
Файл "admin.php". Вход осуществляется после авторизации в модальной форме под логином и паролем администратора. В фале реализовано сразу три страницы, переход осуществляется с помощью ссылок с GET-запросами. Страница "Заказы клиентов" содержит перечень заказов из таблицы "Корзина" с сортировкой по дате или по фамилии клиента. Страница "Добавление типов и производителей" содержит формы для добавлений в таблицы "Типы" и "Производители" соответственно. Страница "Изменение списка товаров" позволяет осуществлять добавление, изменение или удаление данных из таблицы "Товары".
<!--Навигация сайта администратора-->
<nav>
<ul>
<li><a id=btn_zakaz href="admin.php?Админ=Заказы">Заказы клиентов</a></li>
<li><a id=btn_type href="admin.php?Админ=Добавление">Добавление типов и производителей</a></li>
<li><a id=btn_product href="admin.php?Админ=Товары">Изменение списка товаров</a></li>
</ul>
</nav>//Проверка GET-запроса
if ($_GET[Админ] == "Заказы")
echo "<form class=main method='post' style=overflow:hidden>";
else
echo "<form class=main method='post' style='overflow:hidden;display:none;'>"