Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Оглавление
ВВЕДЕНИЕ. 3
ГЛАВА 1. СТРУКТУРА МАГАЗИНА «АВТОШИНЫ». 4
ГЛАВА 2. ТЕОРЕТИЧЕСКИЙ РАЗДЕЛ.. 5
2.1 Задачи, выполняемые во время практики. 5
2.2 Локальный сервер Denwer 6
2.3 База данных MySQL. 7
ГЛАВА 3. ПРАКТИЧЕСКИЙ РАЗДЕЛ.. 8
3.1 Решение поставленных задач. 8
3.2 Защита от SQL-инъекций. 12
3.3 Административная часть сайта. 14
3.4 Локальная сеть. 17
3.5 Тестирование. 19
ЗАКЛЮЧЕНИЕ. 20
СПИСОК ЛИТЕРАТУРЫ.. 21
ВВЕДЕНИЕ
Производственно-технологическую практику проходил в магазине «Автошины» г. Рыбница.
Цель практики: реализация сайта для магазина «Автошины» с разделами предоставляемых товаров по категориям и тематических статей. А также установка локальной сети между 4 компьютерами.
В соответствии с поставленной целью были определены следующие задачи:
- Изучить предоставляемый магазином ассортимент и созданный ранее имидж;
- Разработать индивидуальный дизайн сайта, основываясь на специфике магазина;
- Разработать структуру базы данных, исходя из перечня товаров с разделением по категориям;
- Написать административную часть сайта с возможностью добавления, редактирования и удаления товаров и новостей;
- Отладить и протестировать созданный программный продукт;
- Сделать начальное наполнение базы данных.
ГЛАВА 1. СТРУКТУРА МАГАЗИНА «АВТОШИНЫ»
Магазин «Автошины» состоит из двух отделов с выставочными залами и складского помещения:
1. Отдел шин, дисков, камер и аккумуляторов;
2. Отдел автохимии, масел, комплектующих и аксессуаров.
Состав работников – 5 человек:
Непосредственно, директор магазина, продавец-консультант в каждом из двух отделов, менеджер по работе с клиентами и менеджер по поставкам.
Линейная организационная структура основана на единоличном управлении магазином директором.
Организационную структуру можно представить в следующем виде:

Директор

Менеджер по работе с клиентами Менеджер по повставкам
Продавцы-консултанты
ГЛАВА 2. ТЕОРЕТИЧЕСКИЙ РАЗДЕЛ
2.1 Задачи, выполняемые во время практики
Во время производственно-технологической практики мною была изучена структура магазина «Автошины». Был ознакомлен с персоналом и ассортиментом предоставляемых товаров. Позже руководителем практики были поставлены следующие задачи:
1. Настроить рабочее место:
· Установить локальный сервер Denwer, включающий в себя Apache, PHP, MySQL, Perl и т. д.
· Установить WYSIWYG HTML-редактор компании Adobe «Dreamweaver CS5.5»
2. Согласовать с руководителем и создать индивидуальный дизайн сайта;
3. Разработать необходимый функционал и наполнить сайт.
2.2 Локальный сервер Denwer
Набор Web-разработчика Denwer – локальный сервер (Apache, PHP, MySQL,
PERL и т. д.) и программная оболочка, используемые Web-разработчиками для разработки сайтов на «домашней» (локальной) Windows-машине без необходимости выхода в Интернет. Главная особенность Денвера — удобство при удаленной работе сразу над несколькими независимыми проектами и возможность размещения на Flash-накопителе.
Состав:
· Инсталлятор (поддерживается также инсталляция на flash-накопитель).
· Apache, SSL, SSI, mod_rewrite, mod_php.
· PHP5 с поддержкой GD, MySQL, sqLite.
· MySQL5 с поддержкой транзакций.
· Система управления виртуальными хостами, основанная на шаблонах. Чтобы создать новый хост, вам нужно лишь добавить директорию в каталог /home, править конфигурационные файлы не требуется. По умолчанию уже поддерживаются схемы именования директорий многих популярных хостеров; новые можно без труда добавить.
· Система управления запуском и завершением всех компонентов Денвера.
· phpMyAdmin — система управления MySQL через Web-интерфейс.
· Эмулятор sendmail и SMTP-сервера (отладочная «заглушка» на localhost:25, складывающая приходящие письма в /tmp в формате .eml); поддерживается работа совместно с PHP, Perl, Parser и т. д.
2.3 База данных MySQL
MySQL – свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.
MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.
Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.
ГЛАВА 3. ПРАКТИЧЕСКИЙ РАЗДЕЛ
3.1 Решение поставленных задач
Во время прохождения производственно-технологической практики был создан каркас будущего рекламного сайта для магазина «Автошины» средствами стандартного языка разметки документов в сети интернет HTML и языка описания внешнего вида документа CSS, а также редактора изображений Adobe Photoshop (рис.1):

Рис. 1
На основании ассортимента товаров и необходимого функционала была создана база данных MySQL включающая 6 таблиц:
1. Таблица goodies для хранения товаров:
Id – Уникальный идентификатор товара
Title – Название товара
Price – Цена
Image – Путь к изображению товара
Text – Описание
Meta_k – Ключевые слова, помогающие при поиске
Category – Категория товара
Subcategory – Подкатегория
Brand – Производитель
Date – Дата добавления
Nalichie – Наличие товара в магазине

Рис. 2 (goodies)
2. Таблица news для хранения новостей и статей:
Id – Уникальный идентификатор
Title – Заголовок
Date – Дата добавления
Description – Описание в кратком представлении публикации
Text – Текст публикации
Meta_k – Ключевые слова
Image – Изображение

Рис. 3 (news)
3. Таблица comments для хранения комментариев к опубликованным новостям и статьям:
Id – Уникальный идентификатор комментария;
Page_id – Идентификатор новости или статьи, к которой был написан комментарий
Name – Имя автора комментария
Email – E-mail автора комментария
Body – Текст комментария
Dt – дата и время добавления комментария

Рис. 4 (comments)
4. Таблица navig для хранения значений, используемых при пагинации:
Id – Уникальный идентификатор
Str – кол-во элементов, выводимых на странице

Рис. 5 (navig)
5. Таблица users для хранения данных о зарегистрированных пользователях:
Pk_user – Уникальный идентификатор пользователя
Email – E-mail пользователя
Flname – Имя пользователя
Password – Пароль
Country_code – код страны
Usr_ip – ip-адрес пользователя
Usr_nmb_logins – кол-во входов пользователя на сайт
Usr_signup_date – дата регистрации
Usr_userid – для запоминания при логине
Usr_confirm_hash – уникальный код для подтверждения email
Usr_is_confirmed – подтвержден ли email
Usr_resetpassword_hash – код для ссылки восстановления пароля
Usr_is_blocked – заблокирован ли пользователь
Usr_is_admin – есть ли привилегии администратора

Рис. 6 (users)
6. Таблица country для хранения списка стран и их кодов, значения предлагаются при регистрации:
Country_code – сокращенное обозначение страны
Country_name – полное название страны

Рис. 7 (country)
3.2 Защита от SQL-инъекций
Внедрение SQL-кода (англ. SQL injection) — один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.
Внедрение SQL, в зависимости от типа используемой СУБД и условий внедрения, может дать возможность атакующему выполнить произвольный запрос к базе данных (например, прочитать содержимое любых таблиц, удалить, изменить или добавить данные), получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере.
Атака типа внедрения SQL может быть возможна из-за некорректной обработки входных данных, используемых в SQL-запросах.
Для решения данной задачи было решено проверять входные переменные на тип значения и на вхождения в строку ключевых слов из запросов MySQL.
Для таких значений как Id, используемых при просмотре публикаций или полной информации о товаре использовалась функция PHP preg_match(), проверяющая, соответствует ли значение переменной регулярному выражению. В данном случае числу:
if (!preg_match("|^[\d]+$|", $id))
{
exit ("<p>Неверный формат запроса! Толко числовые значения страниц!");
}
Для символьных значений переменных, таких как category (категория товара), subcategory (подкатегория товара), используемых для отображения необходимой группы товаров, а также keyword (ключевое слово) для поиска по сайту среди товаров было решено использовать проверку на вхождение в сроку ключевых слов из MySQL-запросов (SELECT, UPDATE, INSERT, DELETE, FROM, UNION, DROP, WHERE, ORDER и т. д.):
function escape_inj ($text) {
$text = strtolower($text); // Приравниваем текст параметра к нижнему регистру
if
(
!strpos($text, "select") && //
!strpos($text, "union") && //
!strpos($text, "order") && // Ищем вхождение слов в параметре
!strpos($text, "where") && //
!strpos($text, "char") && //
!strpos($text, "drop") && //
!strpos($text, "insert") && //
!strpos($text, "delete") &&
!strpos($text, "update") && //
!strpos($text, "from") //
)
3.3 Административная часть сайта
По условиям задания от руководителя практики административная часть сайта должна содержать раздел управления пользователями, раздел управления публикациями и раздел управления товаров.
Было решено привести панель администратора к следующему виду (Рис. 8):

Рис. 8
Для полей TEXTAREA использовался платформонезависимый Javascript HTML WYSIWYG (What You See Is What You Get) редактор на основе Web – TinyMCE (Рис. 9). Косновным характеристикам программы относятся поддержка тем/шаблонов, языковая поддержка и возможность подключения модулей (плагинов). TinyMCE используется в различных системах управления содержимым (CMS):
//Подключение редактора
<script type="text/javascript" src="tinymce/tinymce. min. js"></script>
<script type="text/javascript">
//Инициализация скрипта
tinymce. init({
//Подключение плагинов
plugins: "jbimages",
image_advtab: true,
paste_data_images: true,
selector: "textarea",
//Выбор темы
theme: "modern"
//Настройка панели инструментов,
toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image jbimages",
toolbar2: "print preview media | forecolor backcolor emoticons",
relative_urls: false
});
</script>

Рис. 9
3.4 Локальная сеть
Руководителем производственной практики была поставлена задача установки локальной сети между двумя отделами магазина «Автошины», в которых находятся четыре компьютера.
В связи с наличием ADSL маршрутизатора с четырьмя LAN портами было решено использовать именно его.
Было изучено строение магазина «Автошины» и измерена необходимая длина сетевого кабеля RJ45 для проводных сетей:
1м+2м+8м+30м = 41м

Рис. 10
1 - Маршрутизатор
2, 3, 4, 5 - Компьютеры отделов
Для подключения компьютеров была использована использовалась сетевая архитектура, называемая «Звездой», при которой каждый из них подключается к маршрутизатору через RJ45 кабель.
На всех компьютерах была изменена рабочая группа на MSHOME, а также они все были переименованы для удобства распознания в сети. Маска подсети по умолчанию 255.255.255.0.
Для проверки функционирования устройств в локальной сети существует практичная утилита являющая практически стандартной для всех операционных систем. Это утилита ping. Ping позволяет посылать пакеты данных сетевому компьютеру и вычислять время отклика:
ping - t 192.168.0.1
ping - t 192.168.0.2
ping - t 192.168.0.3
ping - t 192.168.0.100
3.5 Тестирование
Для тестирования был выбран бесплатный хостинг сайта www. *****, с использованием субдомена www. autopmr. zz. mu. Файлы отправлялись на сервер с помощью ftp клиента FileZilla версии 3.7.3
Тестирование сайта проводилось в основных браузерах, таких как:
· Internet Explorer 10;
· Mozilla Firefox 24.0;
· Opera 12.16;
· Google Chrome 30.0.1599.101 m.
В визуальной составляющей было выявлено различие в размере кнопок навигации по сайту. Различие составляет несколько пикселей, а потому было признано некритичным.
Функциональная составляющая работала во всех используемых для тестирования сайта браузерах одинаково.
При тесте системы регистрации была выявлена проблема с кодировкой отсылаемых на e-mail сообщений. Для ее решения была использована функция php iconv("UTF-8", "Windows-1251", $peremennaya).
ЗАКЛЮЧЕНИЕ
Производственно-технологическая практика длилась в течении 7 недель в магазине «Автошины».
На производственной практике была изучена структура магазина, был ознакомлен с работой отделов магазина. Был изучен предоставляемый спектр товаров. За время прохождения производственно-технологической практики был создан сайт с индивидуальным дизайном для магазина «Автошины», включающий в себя публичную часть с лентой статей/ новостей, списком товаров разбитых на группы и администраторскую с разделами управления пользователями, добавления, редактирования, удаления публикаций и товаров. Также была протянута локальная сеть между 2-мя отделами, включающими в себя 4-е компьютера.
СПИСОК ЛИТЕРАТУРЫ
1. Обучающие материалы сайта [http://www. /]
2. Статьи сайта [http://www. *****/]
3. Справочник по PHP [http:///manual/ru/langref. php./]
4. Harry Fuecks The PHP Anthology: Object Oriented PHP Solutions, Volume II; SitePoint Pty. Ltd. - Москва, 20c.
5. PHP 5/6 и MySQL 6. Разработка Web-приложений. - 3е изд., перераб. и доп. – СПб,:БХВ-Петербург,2011. – 528 с.


