Разработка и внедрение программного обеспечения на примере компании TOO "Illustrate studio"

 

Содержание


Введение

1. Анализ и постановка задачи

1.1 Область применения и требования создаваемого Web-приложения

1.1.1 Описание предприятия

1.1.2 Требования к техническому обеспечению

1.1.3 Требования к программному обеспечению

1.2 Постановка задачи

1.3 Цель и назначение

Выводы

2. Разработка структуры Web-приложения и выбор средств программной реализации

2.1 Понятие, виды, классификация сайтов

2.2 Этапы создания Web-приложения

2.3 Базовые структуры сайта

2.4 Выбор программных средств для создания web-представительства

2.4.1 Обзор HTML - редакторов

2.4.2 Язык программирования php

2.4.3 Язык программирования JavaScript

2.4.4 Таблица стилей CSS

2.4.5 Система управления базами данных MySQL

2.5 Выбор технических средств

3. Программная реализация Web-приложения

3.1 Описание интерфейса и дизайна

3.1.1 Главная страница

3.1.2 Регистрация

3.1.3 Заказ продукции

3.2 Структура базы данных

Выводы

4. Экономическая часть

Выводы

5. Охрана труда

5.1 Анализ опасных и вредных факторов

5.2 Мероприятия по снижению опасных и вредных факторов

5.3 Расчетная часть

5.3.1 Расчет уровня шума

5.4 Меры пожарной безопасности

Выводы

6. Промышленная экология

Заключение

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

Приложения

Введение


Благодаря широчайшему развитию сети Интернет по всему миру стало выгодным создание и размещение на её просторах веб-сайтов, направленных на расширение бизнеса и привлечение новых клиентов.

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

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

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

Целью дипломного проекта является разработка программного обеспечение Web-приложений информационных систем "artposters. kz", которое будет обеспечивать продажу декоративных постеров, а также обеспечивать распространение рекламы и информации о деятельности компании TOO "ILLUSTRATE studio".

Задачей дипломного проекта, согласно техническому заданию составленному сотрудниками Web-отдела компании ТОО "ILLUSTRATE studio" (далее Разработчик) и утвержденному рабочей группой отдела "Архитектуры и дизайна" компании ТОО "ILLUSTRATE studio" (Далее Заказчик), является создание Web-приложения "artposters. kz", которое должно иметь следующие возможности:

Поиск постеров по названию;

Поиск постеров по направлению;

Вывод прайс-листа на постеры;

Регистрация пользователей на сайте;

Оформление заказов на постеры.

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

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

Научная новизна дипломного проекта заключается в том что данное Web-приложение "artposters. kz", являющаяся по сути интернет-магазином, обладает рядом преимуществ по сравнению с обычными магазинами, это:

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

2.Круглосуточное обслуживание. Интернет - магазин работает круглосуточно, у него нет обедов и выходных, а также нерасторопных продавщиц и менеджеров. Вся информация и товары доступны вам прямо сейчас.

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

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

.Анонимность. Некоторые товары лучше покупать без посторонних глаз. Интернет - магазин гарантирует, что о вашей покупке никто не узнает.

программное обеспечение приложение база

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

7.Огромный ассортимент и приемлемые цены. Интернет - магазину не нужно арендовать торговую площадь, поэтому он может позволить себе на сэкономленные деньги купить более просторный склад, а значит, предложить покупателям более разнообразный выбор товаров. То же самое с ценой, которая снижается за счет уменьшения затрат.

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

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

Апробация дипломного проекта. Данное Web-приложение разрабатывалось в целях обеспечения продаж декоративных постеров, а также обеспечения распространение рекламы и информации о деятельности компании TOO "ILLUSTRATE studio". Были проведены испытания данного Web-приложения в результате которых было принято решение о введении его в действие. Данное Web-приложение "artposters. kz" было введено в действие и ныне функционирует в качестве интернет-магазина Заказчика, которое реализует маркетинговую деятельность по продажам декоративных постеров.

1. Анализ и постановка задачи


1.1 Область применения и требования создаваемого Web-приложения


1.1.1 Описание предприятия

Разработке подлежит программное обеспечение Web-приложения информационных систем "artposters. kz" для отдела "Архитектуры и Дизайна" компании ТОО "ILLUSTRATE studio".

Разрабатываемому программному продукту присваивается наименование "artposters. kz".

Организация ТОО "ILLUSTRATE studio" была основана в 2007 году, директором организации является Дю Владислав Игоревич. Занимается компания широким спектром графических работ - верстка журналов и газет, дизайн логотипа и фирменного стиля различных организаций, разработка видеоигр, web-ресурсов и многое другое.

Непосредственно отдел "Архитектуры и Дизайна" компании ТОО "ILLUSTRATE studio" занимается изготовлением и продажей декоративных постеров.

Предприятие состоит из 5 отделов:отдел;отдел;

Дизайнерский отел;

Отдел верстки;

Отдел архитектуры.

Организация имеет следующие структурные подразделения (Таблица 1.1).


Таблица 1.1

Структура предприятия

Должность Количество Подчинение ФункционалГенеральный директор - Дю В. И. 1-Владелец предприятия, Контроль начальника GAME-отдела. Коммерческий директор - Касьянова В.В. 1Генеральный директорКурирование юридических аспектов работы компании, Руководство отделом продаж, Ведение управленческого учета компании,Координация бизнес-процессов компании, Контроль начальников отделов web-программирования, архитектуры и дизайна, Контроль процессов согласований и коммуникаций с заказчикомНачальник GAME-отдела1Генеральный директорПодбор персонала, мотивация персонала, Маркетинг рынка, Курирование документационных потоков с заказчиком. Начальник WEB-отдела1Коммерческий директорПодбор персонала, мотивация персонала, Маркетинг рынка, Курирование документационных потоков с заказчиком, Ведение проекта по разработке сайта, Написание технического задания (спецификация). Начальник отдела верстки1Коммерческий директорПодбор персонала, мотивация персонала, Маркетинг рынка, Курирование документационных потоков с заказчиком. Начальник отдела архитектуры1Коммерческий директорПодбор персонала, мотивация персонала, Маркетинг рынка, Курирование документационных потоков с заказчиком.

1.1.2 Требования к техническому обеспечению

Сервер должен быть построен на основе Intel Celeron Dual Core не менее 2600 гц, оперативная память минимум 2Гб, рекомендуется 8 Гб, сетевая карта со скоростью 10/100/1000 Мбит/с.

Локальные машины пользователей должны быть построены на основе Intel Celeron Dual Core не мене 1000 гц, с объемом оперативной памяти не менее 512 Мбайт, сетевая карта со скоростью 10/100/1000 Мбит/с.

Необходим доступ клиента к серверу по сети по протоколу TCP/IP.


1.1.3 Требования к программному обеспечению

В качестве операционных систем может использоваться ОС типа Windows (Windows XP, Windows 7), а так же ОС семейства Linux.

Для работы системы необходимо следующее предустановленное программное обеспечение:HTTP-сервер (c mod_mysql, mod_xml и mod_zlib) 2.4.4 или ниже;5.3, минимум PHP 5.2.4;5.0.4 минимум 4.1 x.

Так же необходимо наличие:

Инструментального программного обеспечения: Macromedia Dreamweaver MX либо PhpDesigner либо Notepad ++.браузеров: Chrome, Firefox, Opera, Safari, Internet Explorer.

На локальных машинах пользователей должен быть установлен любой из перечисленных браузеров с поддержкой JavaScript.


1.2 Постановка задачи


Создаваемое Web-приложение "artposters. kz" относится к интернет-магазинам (Сетевой магазин, Электронный магазин, Internet shop, E-shop) автоматизированным системам управления организационными объектами. Интернет-магазин это сайт, торгующий товарами в интернете. Позволяет пользователям сформировать заказ на покупку, выбрать способ оплаты и доставки заказа в сети Интернет. Выбрав необходимые товары или услуги, пользователь обычно имеет возможность тут же на сайте выбрать метод оплаты и доставки. Совокупность отобранных товаров, способ оплаты и доставки представляют собой законченный заказ, который оформляется на сайте путем сообщения минимально необходимой информации о покупателе. После отправки заказа с покупателем связывается продавец и уточняет место и время, в которое следует доставить заказ. Доставка осуществляется либо собственной курьерской службой, либо компанией, предоставляющей услуги доставки, либо по почте - посылкой или бандеролью [1].

Объектом автоматизации является маркетинговая деятельность отдела "Архитектуры и Дизайна", направленная на обеспечение продаж продукции предприятия. Целью разработки данного Web-приложения является создание среды, осуществляющей рекламу товара и прием заказов на покупку.

Разрабатываемое Web-приложение "artposters. kz" предназначено для:

рекламы продукции и поиска потенциальных клиентов;

регистрации заказчиков;

ведения учета заказчиков с полной записью их основных данных (название, адрес, телефон, электронная почта и др.);

учета заказов, оформляемых заказчиком;


1.3 Цель и назначение


Целью создания программного обеспечения Web-приложения информационных систем "artposters. kz" для отдела "Архитектуры и Дизайна" компании ТОО "ILLUSTRATE studio" является повышение эффективности маркетинговой деятельности отдела. Маркетинговая деятельность - это деятельность по решению подразделением маркетинга стоящих перед ним практических задач в коммерческой компании (предприятии, фирме).

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

Содержание маркетинговой деятельности заключается в поиске взаимовыгодного компромисса между потребностями потенциальных потребителей и производственными возможностями (а также ключевыми компетенциями) компании с учетом возможных действий конкурентов. Традиционно в маркетинге считается, что в маркетинговой деятельности необходимо отталкиваться именно от потребностей рынка, однако это не всегда справедливо. Маркетинговая деятельность может быть направлена как на изменение продуктов и бизнес-процессов компании для соответствия существующему спросу (повышение итоговой потребительной ценности), так и на создание, развитие либо изменение рыночного спроса (потребностей потенциальных потребителей) [1].

Критерием эффективности функционирования Web-приложения является увеличение числа клиентов, повышение эффективности продаж декоративных постеров.

Выводы


В данной главе была проанализирована деятельность отдела "Архитектуры и Дизайна" организации ТОО "ILLUSTRATE studio". Так же рассмотрена структура предприятия и деятельность по всем его отделам.

Были определены технические и программные требования к разрабатываемому Web-приложению. А так же определены цели и задачи проектирования и цели и назначения будущего программного продукта.

2. Разработка структуры Web-приложения и выбор средств программной реализации


2.1 Понятие, виды, классификация сайтов


Сайт (от англ. website: web - "паутина, сеть" и site - "место", буквально "место, сегмент, часть в сети") - совокупность электронных документов (файлов) частного лица или организации в компьютерной сети, объединённых под одним адресом (доменным именем или IP-адресом).

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

Первый в мире сайт info. cern. ch появился в 1990 году. Его создатель, Тим Бернерс-Ли, опубликовал на нём описание новой технологии World Wide Web, основанной на протоколе передачи данных HTTP, системе адресации URI и языке гипертекстовой разметки HTML. Также на сайте были описаны принципы установки и работы серверов ибраузеров. Сайт стал и первым в мире интернет-каталогом, так как позже Тим Бернерс-Ли разместил на нём список ссылок на другие сайты.

Все инструменты, необходимые для работы первого сайта, Бернерс-Ли подготовил ещё раньше - в конце 1990 года появились первый гипертекстовый браузер WorldWideWeb с функционалом веб-редактора, первый сервер на базе NeXTcube и первые веб-страницы.

"Отец" веба считал, что гипертекст может служить основой для сетей обмена данными, и ему удалось претворить свою идею в жизнь. Ещё в 1980 году Тим Бернерс-Ли создал гипертекстовое программное обеспечение Enquire, использующее для хранения данных случайные ассоциации. Затем, работая в Европейском центре ядерных исследований в Женеве (CERN), он предложил коллегам публиковать гипертекстовые документы, связанные между собой гиперссылками. Бернерс-Ли продемонстрировал возможность гипертекстового доступа к внутренним поисковику и документам, а также новостным ресурсам Интернета. В результате, в мае 1991 года в CERN был утверждён стандарт WWW.

Тим Бернерс-Ли является "отцом" основополагающих технологий веба - HTTP, URI/URL и HTML, хотя их теоретические основы были заложены ещё раньше. В 1940-х годах Ванневар Буш выдвинул идеи расширения памяти человека с помощью технических устройств, а также индексации накопленной человечеством информации для её быстрого поиска. Теодор Нельсон и Даг Энгельбарт предложили технологию гипертекста - "ветвящегося" текста, предоставляющего читателю разные варианты чтения. Xanadu, так и не законченная гипертекстовая система Нельсона, была предназначена для хранения и поиска текста, в который введены взаимосвязи и "окна". Нельсон мечтал связать перекрёстными ссылками все тексты, созданные человечеством.

В настоящее время Тим Бернерс-Ли возглавляет основанный им Консорциум Всемирной паутины (World Wide Web Consortium), который занимается разработкой и внедрением стандартов Интернета [2].приложения бывают двух видов: персональные и коллективные.

) Персональные страницы.

"Домашняя страничка". Самый простой и доступный всем тип сайта. Как правило, состоит "домашний сайт" из четырех-пяти отдельных страничек-документов. Заглавная может содержать краткую биографическую справку о ее авторе. На второй странице может быть описано хобби автора (музыкальные, книжные пристрастия и т.д.), на третьей возможна коллекция домашних фотографий, четвертая может содержать коллекцию ссылок сетевых ресурсов. Т.е. - это основные части "домашней странички", изготовленные по шаблонам в любом визуальном HTML-редакторе.

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

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

"Виртуальный фэн-клуб". Вторая по численности (после домашних страничек) группа сетевых страниц.

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

) Коллективные странички.

"Сетевое издание". Журнал, газета, альманах, агентство новостей и т.д. Динамичный, часто обновляемый и объемный сайт, который весьма сходен с "фан-клубом" и "обозрением". Такой сайт может состоять уже из сотен и даже тысяч документов. Также в структуре могут сочетаться черты "сетевого журнала" и тестовой лаборатории.

Еще один тип изданий этой группы - электронные копии традиционных печатных изданий, газет и журналов.

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

На самом деле, это только неполный список различных видов сайтов, и при желании, его можно продолжить. Если попытаться провести аналогию с приведенной выше классификацией, то, создаваемый нами сайт, можно отнести к "Виртуальным представительствам".

По доступности сервисов Web-приложения подразделяются на:

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

полуоткрытые - для доступа необходимо зарегистрироваться (обычно бесплатно);

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

По физическому расположению:

общедоступные сайты сети Интернет;

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

По схеме представления информации, её объёму и категории решаемых задач можно выделить следующие типы веб-ресурсов:

) Интернет-портал - многокомпонентная разветвлённая структура, скомпонованная из функционально самодостаточных сайтов самостоятельных организаций или подразделений корпоративной структуры;

) Информационные ресурсы:

тематический сайт - сайт, предоставляющий специфическую узкотематическую информацию по какой-либо теме.

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

) Интернет-представительства владельцев бизнеса (торговля и услуги, не всегда связанные напрямую с Интернетом):

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

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

корпоративный сайт - содержит полную информацию о компании-владельце, услугах/продукции, событиях в жизни компании. Отличается от сайта-визитки и представительского сайта полнотой представленной информации, зачастую содержит различные функциональные инструменты для работы с контентом (поиск и фильтры, календари событий, фотогалереи, корпоративные блоги, форумы). Может быть интегрирован с внутренними информационными системами компании-владельца (КИС, CRM, бухгалтерскими системами). Может содержать закрытые разделы для тех или иных групп пользователей - сотрудников, дилеров, контрагентов и пр.;

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

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

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

) Сайт-квест - Интернет-ресурс, на котором организовано соревнование по разгадыванию последовательности взаимосвязанных логических загадок;

) Веб-сервис - сайт, созданный для выполнения каких-либо задач или предоставления услуг в рамках сети WWW;

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

) Каталог сайтов - это ресурс, на котором размещаются сайты и блоги, например, Open Directory Project. Каталоги бывают платные и бесплатные. Также каталоги могут способствовать продвижению ресурса, который размещается в каталоге сайтов.

) Поисковые сервисы - например, Yahoo!, Google;

) Почтовый сервис;

) Веб-форумы;

) Блоговый сервис;

) Файлообменный пиринговый сервис - например, Bittorrent;

) Облачное хранилище данных - например, Skydrive;

) Сервис редактирования данных - например, Google Docs;

) Фотохостинг - например, Picnik, ImageShack, Panoramio, Photobucket;

) Видеохостинг - например, YouTube, Dailymotion;

) Социальные медиа;

) Комбинированные веб-сервисы (Социальные сети) - например, Facebook, Twitter;

) Комбинированные веб-сервисы (Специализированные социальные сети) - например, MySpace, Flickr [3].


2.2 Этапы создания Web-приложения


Первый этап создания Web-приложения это разработка шаблона.

На данном этапе разрабатывается дизайн основной и типовых страниц Web-приложения.

Начинается работа с создания дизайна, обычно в графическом редакторе. Дизайнер создаёт один или несколько вариантов дизайна, в соответствии с техническим заданием. При этом отдельно создаётся дизайн главной страницы, и дизайны типовых страниц (например: статьи, новости, каталог продукции). Собственно "дизайн страницы" представляет собой графический файл, слоеный рисунок, состоящий из наиболее мелких картинок-слоев элементов общего рисунка.

При этом дизайнер должен учитывать ограничения стандартов html (не создавать дизайн, который затем не сможет быть реализован стандартными средствами html). Исключение составляет Flash-дизайн.

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

Второй этап это HTML-верстка.

Утверждённый дизайн передаётся html-верстальщику, который "нарезает" графическую картинку на отдельные рисунки, из которых впоследствии складывает html-страницу. В результате создаётся код, который можно просматривать с помощью браузера. А типовые страницы впоследствии будут использоваться как шаблоны.

В небольших студиях html-кодированием занимается дизайнер, создавший макет сайта.

Третий этап - программирование.

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

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

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

Четвертый этап это тестирование.

Завершающим этапом разработки сайта под ключ является конечно же тестирование.

Веб-дизайн сайта должен адекватно выглядеть в различных браузерах, особенно в браузерах Internet Explorer, Firefox, Safari, Chrome и Opera.Explorer (версии 6) по-своему трактовал HTML-стандарты (отголоски старой борьбы за лидерство с Netscape). Этот морально устаревший браузер создавал много проблем для веб-дизайнеров. Многие разработчики даже предлагали отказаться от верстки под IE 6, однако наличие этого браузера в стандартной поставке Windows XP, а значит и его присутствие на многих пользовательских компьютерах, вынуждало веб-дизайнеров тестировать свои проекты в нём. По состоянию на лето 2012 года IE 6 используется на 6 % пользователей, в основном за счёт Китая, где его используют 21 % пользователей.

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

Сроки контролирует менеджер проекта. Также на этом этапе привлекают к работе дизайнера, чтобы он провёл авторский надзор.

Пятый этап - размещение сайта в Интернет.

Файлы сайта размещают на сервере провайдера и производят нужные настройки. На этом этапе сайт пока закрыт для посетителей.

Наполнение контентом и публикация.

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

Внутренняя SEO-оптимизация.

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

Внешняя SEO-оптимизация.

Сводится, как правило, к построению структуры входящих ссылок. Это собственно и есть раскрутка. К разработке сайта внешняя SEO-оптимизация не имеет отношения. Поскольку SEO-оптимизация это разновидность шаманизма - она как магия, классифицируется на "белую" и "черную" - такую, после которой сайт за две недели попадает в топ, а потом в бан. Настоящая белая SEO оптимизация это трудоёмкий и долгий процесс, стоимость которого может в несколько раз превышать расходы на создание сайта.

Шестой этап - сдача проекта.

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

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

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

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

Конечным продуктом работы веб-дизайнера является дизайн-макет: картинка, представляющая предполагаемый будущий внешний вид страниц сайта, размером приблизительно 960х640 px (пикселей) - размер, соответствующий среднему стандарту, связанный с необходимостью дальнейшей привязки к разным разрешениям экрана монитора. Картинка эта является многослойной, где, на усмотрение дизайнера, почти каждая деталь - отдельный слой, приложенный к другим слоям-картинкам, за счёт чего может легко выполняться доработка, замена, перекомпоновка и другие задачи. В зависимости от идеи и целей макет может включать фотографии, сложные коллажи, иллюстрации, текстовые слои, уникальные иконки. Для главной страницы и внутренних иногда рисуются отдельные макеты с дополнениями или изменениями в соответствии с тематикой страницы.

Изображение первоначально может быть векторным или растровым, выполненным в Adobe Illustrator, Adobe Photoshop, GIMP или другом визуальном редакторе (например, Scribus или Inkscape), но для верстальщика изображение, как правило, переводится в растровый формат.

Для демонстрации клиенту изображение обычно переводится в простой однослойный и привычный формат изображений [4].


2.3 Базовые структуры сайта


Структурные схемы страниц (wireframes) - основной результат работ по проектированию. Они в деталях показывают, какая информация и элементы управления должны выводиться на каждой странице системы. А также расставляют акценты - какие из элементов страницы более, а какие - менее важны. Wireframes также описывают поведение динамических и AJAX-элементов страниц - как они должны реагировать на действия пользователя. Стоит помнить, что схемы страниц - это не конечный дизайн системы и все размеры в нем относительны.сайт, содержит несколько тематических рубрик, соединенных между собой гиперсвязями. Ссылки на все разделы сайта с краткими анонсами их содержимого приводятся на первой, так называемой стартовой странице, которой присваивается имя index. htm (.html).

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

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

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

Структура каталогов.

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

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

Иерархическая - страницы разбиты по категориям и подкатегориям. Такая структура наиболее удобна.

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

Структура навигации.

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

Где я нахожусь?

Куда могу пойти?

Как туда добраться?

Как вернуться назад?

Для решения этих задач используются различные варианты. Например, можно как-то выделить страницу в меню, на которой сейчас находится пользователь, а само меню сделать видимым на всех страницах сайта [5].

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

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

Основные системы навигации:

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

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

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

Более оптимальным решением является следующее: оставить лишь вид кнопки (фоном), а текст на ней все-таки оформить в виде ссылки. Этог нетрудно добиться средствами CSS. Пример обыкновенной кнопочной навигации:

) Навигационные карты. При таком подходе берется изображение и к различным его областям привязываются ссылки. Самым распространенным примером являются туристические карты мира, щелкаете по ее части с какой-либо страной и попадаете на страницу, посвященную этой стране. Карты обязательно надо дублировать хотя бы скромным горизонтальным меню внизу страницы. Иначе, при малейшем сбое пользователь вообще никуда не сможет перейти [5].


2.4 Выбор программных средств для создания web-представительства


2.4.1 Обзор HTML - редакторов

Macromedia HomeSite.

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

Рабочее пространство программы можно условно поделить на три части: первая, самая большая - собственно окно с содержанием документа, вторая часть, находящаяся левее, по умолчанию содержит перечень документов, имеющихся на диске. И, наконец, вверху, кроме традиционного меню, имеются несколько панелей с наиболее часто используемыми функциями, вид которых, впрочем, можно настроить на свой вкус [6].HomeSite обеспечивают удобную подсветку синтаксиса не только HTML-страниц, но и файлов PHP, Perl, ASP, MySQL и других популярных средств разработки. Данный факт придется по душе опытным пользователям, которые не ограничиваются средствами языка гипертекстовой разметки и используют более сложные языки веб-программирования. Если же Вас не устраивает текущая цветовая схема подсветки синтаксиса, то это не проблема - можно отредактировать существующую, или даже создать собственную схему оформления документов. HomeSite имеет мощную справочную систему, содержащую кроме описания возможностей программы спецификации языка HTML, справочник тегов и включающая удобные всплывающие подсказки по текущему дескриптору - для их вызова достаточно нажать F2, и пользователю демонстрируются все возможные атрибуты для данного тега.

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

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

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

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

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

Для повышения скорости создания документов можно воспользоваться клавиатурными сокращениями - HomeSite предоставляет обширное поле деятельности для любителей клавиатуры. Например, тегу соответствует комбинация клавиш Ctrl+Break. Впрочем, пользователь волен назначить практически любой команде удобное ему сочетание клавиш.

SiteEdit.

Программа SiteEdit создана российской компанией EdgeStile и позиционируется разработчиками как система управления сайтом. В отличие от HomeSite, SiteEdit относится к так называемым визуальным средствам разработки - WYSIWYG-редакторам (от заглавных букв выражения What You See Is What You Get - "что видите, то и получите").

После первого запуска программы появляется готовый шаблон веб-узла.

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

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

Программа предлагает несколько шаблонов оформления: book, galeon, kafe, palm_skin, stroitel, благодаря которым можно существенно изменить облик всего сайта в целом.

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

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

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

Напрямую сохранить код странички из программы невозможно, для этого необходимо выбрать пункт "Просмотр страницы в браузере", и лишь из браузера можно сохранить страницу в виде html-файла. Данный подход, видимо, связан с тем, что в версиях Standard и Business программы SiteEdit имеется возможность выгрузки всего проекта сразу на хостинг, однако в бесплатной версии Start данная возможность, к сожалению, отсутствует.

Еще одна Freeware-программа - это HTML Source. Первое, что отличает его от других редакторов - небольшой размер дистрибутива программы - всего 1,5 Мб. Несмотря на это функциональность и возможности программы не уступают другим [7].

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

В верхней части рабочей области программы имеется обычная панель инструментов, на которой расположены кнопки для создания нового документа, открытия существующих файлов, печати файла, проверки орфографии и прочие распространенные действия. Все пиктограммы выполнены в неплохом стиле, однако огорчает лишь отсутствие всплывающих подсказок при наведении на ту или иную иконку действия. Примечательно, что программа сама определяет, какие браузеры установлены в системе, и в панели инструментов имеются иконки для просмотра документа в имеющихся у пользователя браузерах. В моем случае, кроме стандартного Internet Explorer, были уставлены также Opera и Mozilla FireFox, что и продемонстрировала программа.

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

В меню "Insert" у пользователя имеется возможность вставки даты, специальных символов HTML, изображений, а также широкого набора смайлов.

В меню "Tools" собраны все инструменты данного программного средства. Он состоит из следующих пунктов:

Пункт "Convert Case" позволяет сменить регистр букв, т.е. либо инвертировать его, либо привести к одному определенному;

Пункт "Convert CodePage" позволяет быстро сменить кодировку всей страницы;

Встроенный модуль проверки орфографии;

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

Еще одним мощным средством создания Web-приложений является Macromedia Dreamweaver MX 2004.

Возможности Macromedia Dreamweaver MX 2004 впечатляют. После установки пользователя просят выбрать внешний вид программы, который отличается в зависимости от подхода к созданию веб-документов. При выборе "Code" интерфейс программы будет подстроен под нужды кодировщика, а при выборе "Design" - соответственно, дизайнера. Всегда имеется возможность для переключения между этими двумя режимами, а также доступен третий, комбинированный режим - рабочая область программы делится на две части.

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

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

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

Приложение имеет встроенный инструмент под названием Tag Chooser, с помощью которого можно вставить не только любой HTML-тег, но и основные выражения и операторы таких языков программирования, как JavaScript, ASP.net, PHP, WML и ColdFusion.

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

При работе в режиме "Code" рабочая область программы напоминает таковую у HomeSite. Конструктор таблиц предоставляет разработчику небывалую гибкость при создании таблиц, при этом программа предлагает использовать один из шаблонов оформления, их насчитывается несколько десятков, причем при выборе определенного шаблона тут же имеется возможность подстроить его под свои нужды, откорректировав некоторые его атрибуты. После создания таблицы и наполнения ее содержимым становится доступным сортировка таблицы по какому-либо столбцу.Dreamweaver MX 2004 может использоваться совместно с другими продуктами компании - Macromedia Fireworks, Flash и др.

Для создания графических объектов лучше всего подходят программу от Adobe (PhotoShop), для анимации пакеты программ от Xara и Ulead. Помимо кнопок, меню и фона на странице могут быть баннеры. Это картинки с различной рекламой, часто анимированные. Среди анимации используется стандарт Flash, созданный корпорацией Macromedia. По своему устройству "флэш-файлы" похожи на "анимированный" GIF. Вот только реализованы они не на основе растровых изображений, а с использованием векторной графики. Самое главное, что flash-анифация занимает значительно меньше места чем обыкновенная графика.

Музыка. Есть возможность вставить для проигрывания MIDI, WAV - файлы, которые будут проигрываться при просмотре страницы. Для них с помощью JAVA - апплетов можно сделать кнопки управления мелодией.- апплеты. Язык программирования JAVA был специально создан для Интернет. С помощью него можно создать довольно эффектные элементы страницы - например, выезжающее меню или анимированные кнопки.- скрипты. Формы. Другая дизайнерская полезность, созданная программистами. GGI - скрипты - это "мини - программы", ссылки на которые можно вставить в тело самой страницы. Эти программы помогают автматизировать многие сложные операции, вводимые посетителями, данными и т.д. С помощью них можно создать гостевую книгу, анкету, поисковик и многие другие вещи.

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

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

Навигационная панель присутствует на экране постоянно, упрощая перемещение по сайту. При щелчке по любой кнопке - ссылке новая страница открывается во втором большом окне [8].


2.4.2 Язык программирования php

PHP (Hypertext Preprocessor - Препроцессор Гипертекста) - это широко используемый язык сценариев общего назначения с открытым исходным кодом.- язык программирования, специально разработанный для написания web-приложений (скриптов, сценариев), исполняющихся на Web-сервере. Синтаксис языка во многом основывается на синтаксисе C, Java и Perl. Он очень похож на С и на Perl, поэтому для профессионального программиста не составит труда его изучить. С другой стороны, язык PHP проще, чем C, и его может освоить веб-мастер, не знающий пока других языков программирования.

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

Сценарии на языке PHP могут исполняться на сервере в виде отдельных файлов, а могут интегрироваться в html страницы.способен генерировать и преобразовывать не только HTML документы, но и изображения разных форматов - JPEG, GIF, PNG, файлы PDF и FLASH. PHP способен формировать данные в любом текстовом формате, включая XHTML и XML.- кроссплатформенная технология. Дистрибутив PHP доступен для большинства операционных систем, включая Linux, многие модификации Unix, Microsoft Windows, Mac OS и многих других. PHP поддерживается на большинстве вебсерверов, таких, как Apache, Microsoft Internet Information Server (IIS), Microsoft Personal Web Server и других.

Для большинства серверов PHP поставляется в 2-х вариантах - в качестве модуля и в качестве CGI препроцессора.поддерживает работу с ODBC и большое количество баз данных: MySQL, MSQL, Oracle, PostgreSQL, SQLite и др.

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

История PHP начинается с 1995 года, когда Расмус Лердорф (Rasmus Lerdorf) создал простое приложение на языке Perl, анализирующее посещения пользователями его резюме на веб-сайте. Затем, когда этим приложением уже пользовались несколько человек, а число желающих получить его постоянно увеличивалось, Лердорф назвал свое творение Personal Home Page Tools версия 1 и выставил для свободного скачивания. С этого момента начался небывалый взлет популярности PHP.

Как это всегда бывает, срочно потребовались доработки и дополнения. Для их реализации Расмус создает новую версию пакета, теперь уже написанную на С. Полученный таким образом инструмент приобретает рабочее название PHP/FI (Personal Home Page / Forms Interpreter - Персональная Домашняя страница / Интерпретатор Форм), в дальнейшем он также будет известен под названием PHP 2. Эта версия уже в большей степени похожа на сегодняшний PHP. Она имела синтаксис и способ именования переменных в стиле языка Perl, автоматическую интерпретацию форм, интеграцию с базами данных (в основном с mSQL) и возможность встраивания PHP операторов в html-код страницы. При этом все работало очень быстро, так как PHP прикомпилировался к веб-серверу Apache. К 1997 году PHP использовался уже на 50,000 доменах (не более 1% всех веб-серверов).

В том же 1997 году к проекту PHP подключились Зив Сураски (Zeev Suraski) и Энди Гутманс (Andi Gutmans). Будучи студентами одного из Израильских универсистетов, они пытались использовать PHP/FI для одного из коммерческих университетских проектов. При этом им пришлось столкнуться со многими трудностями и ограничениями этой технологии. Изучая исходный код PHP 2, Зив и Энди пришли к выводу о необходимости доработки, а точнее существенной переработки PHP, особенно в плане ситаксиса языка. В течение нескольких месяцев они блестяще справились с этой задачей, тем более приятно, что данная работа была зачтена им в качестве учебной нагрузки университета.

Закончив работу Зив и Энди связались с Расмусом, который воспринял все изменения PHP "на ура". С этого момента появляется PHP Group - группа единомышленников, работающих над развитием технологии PHP. Полученный продукт совместной деятельности увидел свет в 1998 году под названием PHP 3.

При этом главной особенность PHP 3 была возможность расширения ядра, что привлекло к работе над PHP множество сторонних разработчиков, создающих специализированные модули. Их наличие дало PHP возможность работать с огромным количество баз данных, протоколов, поддерживать большое число API. К концу 1998 количество пользователей PHP перевалило за 100000, а PHP был уже установлен на не менее чем 10% серверах Интернета.

Сразу же после выхода PHP 3, Энди Гутманс и Зив Сураски начали переработку ядра PHP. В первую очередь предстояло решить проблему повышения производительности. Новый движок, названный Zend Engine (от имен создателей: Zeev и Andi), успешно справлялся с этой задачей и был реализован в 1999 году. Основной идей его использования была возможность компиляции сценария в исполняемый модуль, за счет чего производительность можно было поднять на порядок.4, работающий на этом движке вышел в 2000 году. В дополнение к улучшению производительности, PHP 4 имел новые возможности по поддержке сессий, буферизацию вывода, безопасные способы обработки вводимой пользователем информации и новые языковые конструкции. С выходом 4 версии PHP стал использоваться уже на более чем 20% доменов Интернета.

За время с 2000 по 2004 год продолжались активные работы по улучшению 4 версии, но почти сразу PHP Group приступила к продумыванию возможностей новой версии. В первую очередь было решено усилить объектные возможности языка, что позволяло использовать его для реализации достаточно крупных проектов. Работы по созданию версии 5 велись продолжительное время, в них принимало участие рекордное количество специалистов, из которых хотелось бы особо отметить Стерлинга Хьюза (Sterling Hughes) и Маркуса Бергера (Marcus Boerger) [9].

В июле 2004 года, выходит официальный релиз PHP 5. В первую очередь, переработке подвергся весь механизм работы с объектами. И если в предыдущих версиях объектно-ориентированное программирование на PHP было возможно в минимальной степени, из-за чего и использовалось на практике не часто, то PHP 5 обладает великолепным потенциалом реализации объектного программирования. Кроме этого, PHP обогатился рядом ценных расширений для работы с XML, различными источниками данных, генерации графики и пр [10].

Все основные библиотеки для работы с XML, которые имелись в PHP 4, были подвергнуты серьезной переработке. Такие популярные расширения, как SAX, DOM и XSLT, теперь используют инструмент libxml2, что делает их еще более эффективными. В PHP 5 также включены два новых расширения - SimpleXML и SOAP.позволяет значительно упростить работу с XML-данными, представляя содержимое XML-документа в виде PHP-объекта. Никогда еще работа с XML в PHP не велась так просто.

Расширение SOAP позволяет строить на PHP сценарии, обменивающиеся информацией с другими приложениями при помощи XML-сообщений поверх существующих веб-протоколов, например HTTP. Появляется возможность интегрировать PHP приложения с популярнейшими на сегодняшний день веб-сервисами. Расширение SOAP для PHP 5 предоставляет разработчикам средство для достаточно быстрого создания эффективных SOAP-клиентов и SOAP-серверов.

Новое расширение PHP 5 MySQLi (MySQL Improved) предназначено для работы с MySQL-сервером версий 4.1.2 и выше, реализуя не только процедурный, но и объектно-ориентированный интерфейс к MySQL. Дополнительные возможности этого модуля включают - SSL, контроль транзакций, поддержка репликации и пр.

Расширение SQLite позволяет строить приложения, хранящие данные в обычных файлах, с возможностью использования к ним интерфейса SQL. Главное преимущество SQLite - исключительная простота использования. SQLite наряду с процедурными имеет также мощные объектно-ориентированные возможности для работы с данными. Другие отличительные особенности SQLilte - высокая скорость, отсутствие сложных механизмов администрирования, легкая переносимость и пр. Многие эксперты прогнозируют большую популярность данного расширения PHP.

Другие новые расширени PHP 5 включают:- для анализа и исправления HTML-документов;- использование Perl-сценариев непосредственно из PHP-кода;(Standard PHP Library) - расширение ZE2, определяющее стандартный набор интерфейсов и классов;(PHP Data Objects) - предоставляет универсальный интерфейс доступа к данным из PHP;- новая библиотека для работы с графикой, пришедшая на замену модуля GD.

Среди других крайне полезных добавлений в PHP 5 следует отметить новую схему обработки исключений. Конструкция try/catch/throw позволит весь код обработки ошибок локализовать в одном месте сценария.

Кроме этого, в PHP 5:

используется новый более быстрый диспетчер памяти5 дополнен свойствами, необходимыми для чёткой реализации структуры PEAR и связанной с ним функциональности

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

В PHP, в отличие от многих других языков программирования, присутствует так называемый слабый контроль типов. То есть тип переменной можно не объявлять, по ходу программы она может содержать самые разные значения, сначала, например, содержать число (integer), затем туда можно записать строку (string) или массив (array). При сравнении двух переменных при помощи оператора сравнения "==" PHP преобразует переменные согласно приведенному ниже алгоритму и затем проводит сравнение (Таблица 2.1). Так, в случае, если вы сравниваете целое со строкой, строка будет преобразована к числу. В случае, если вы сравниваете две числовые строки, они сравниваются как целые числа. Это удобно, но не всегда. При таком сравнении, к примеру, ноль нельзя отличить от FALSE. А ведь нулевой номер имеют первые элементы массивов и строк. Поэтому, в PHP есть оператор идентичности "===", который сравнивает переменные с учетом их типов (Таблица 2.2).


Таблица 2.1

Гибкое сравнение с помощью "=="

TRUEFALSE10-1"1""0""-1"NULLarray () "php"TRUETRUEFALSETRUEFALSETRUETRUEFALSETRUEFALSEFALSETRUEFALSEFALSETRUEFALSETRUEFALSEFALSETRUEFALSETRUETRUEFALSE1TRUEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSE0FALSETRUEFALSETRUEFALSEFALSETRUEFALSETRUEFALSETRUE-1TRUEFALSEFALSEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSE"1"TRUEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSE"0"FALSETRUEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSE"-1"TRUEFALSEFALSEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSENULLFALSETRUEFALSETRUEFALSEFALSEFALSEFALSETRUETRUEFALSEarray () FALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSE"php"TRUEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSETRUE

Таблица 2.2

Жёсткое сравнение с помощью "===" (учитывает тип переменных)

TRUEFALSE10-1"1""0""-1"NULLarray () "php"TRUETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE1FALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE0FALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSE-1FALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSE"1"FALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSE"0"FALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSE"-1"FALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSENULLFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEarray () FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSE"php"FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUE

Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.

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

Простейшая программа Hello world на PHP выглядит следующим образом:


<? php'Hello, world! ';

? >


Также возможен более короткий вариант вывода строки:


<? = 'Hello, world! '? >


Открывающий тэг вида <? = используется для сокращённой записи конструкций используемых для вывода строки.исполняет код, находящийся внутри ограничителей, таких как <? php? >. Всё, что находится вне ограничителей, выводится без изменений. В основном это используется для вставки PHP-кода в HTML-документ, например, так:


<html>

<head>

<title>Тестируем PHP</title>

</head>

<body>

<? php echo 'Hello, world! ';? >

</body>

</html>


Помимо ограничителей <? php? >, допускается использование дополнительных вариантов, таких как <?? > и <script language="php"> </script>. Кроме того, до версии 6.0 допускается использование ограничителей языка программирования ASP <% %> (конструкции <?? > и <% %> могут быть выключены в конфигурационном файле php. ini).

Имена переменных начинаются с символа $, тип переменной объявлять не нужно. Имена переменных, функций и классов чувствительны к регистру. Константы также чувствительны к регистру. Переменные обрабатываются в строках, заключённых в апострофы или двойные кавычки, и heredoc-строках (строках, созданных при помощи оператора <<<).рассматривает переход на новую строку как пробел, так же как HTML и другие языки со свободным форматом. Инструкции разделяются с помощью точки с запятой (;), за исключением некоторых случаев, после объявления конструкции if/else и циклов [11].

Переменные в функцию можно передавать как по значению, так и по ссылке (используется знак &).поддерживает три типа комментариев: в стиле языка Си (ограниченные /* */), C++ (начинающиеся с // и идущие до конца строки) и оболочки UNIX (с # до конца строки).является языком программирования с динамической типизацией, не требующим указания типа при объявлении переменных, равно как и самого объявления переменных. Преобразования между скалярными типами зачастую осуществляются неявно без дополнительных усилий (впрочем, PHP предоставляет широкие возможности и для явного преобразования типов).

К скалярным типам данных относятся:

·целый тип (integer),

·вещественный тип данных (float, double),

·логический тип (boolean),

·строковый тип (string),

·и специальный тип NULL.

К нескалярным типам относятся:

·"ресурс" (resource),

·массив (array),

·объект (object),

К псевдотипам относятся:

·mixed <http://ru.wikipedia.org/w/index.php?title=Mixed&action=edit&redlink=1> один или несколько необязательных параметров,

·number число (integer либо float),

·callback (string или анонимная функция),

·void отсутствие параметров.

Диапазон целых чисел (integer) в PHP зависит от платформы (обычно, это диапазон 32-битных знаковых целых чисел, то есть, от ?2 147 483 648 до 2 147 483 647). Числа можно задавать в десятичной, восьмеричной и шестнадцатеричной системах счисления. Диапазон вещественных чисел (double) также зависит от платформы (для 32-битной архитектуры диапазон позволяет оперировать числами от ±1.7Ч10?308 до ±1.7Ч10+308).предоставляет разработчикам логический тип (boolean), способный принимать только два значения TRUE ("истина") и FALSE ("ложь"). При преобразовании в логический тип число 0, пустая строка, ноль в строке "0", NULL и пустой массив считаются равными FALSE. Все остальные значения автоматически преобразуются вTRUE.

Специальный тип NULL предназначен для переменных без определённого значения. Единственным значением данного типа является константа NULL. Тип NULL принимают неинициализированные переменные, переменные инициализированные константой NULL, а также переменные, удалённые при помощи конструкции unset ().

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

Массивы (array) поддерживают числовые и строковые ключи и являются гетерогенными. Массивы могут содержать значения любых типов, включая другие массивы. Порядок элементов и их ключей сохраняется. Не совсем корректно называть php-массивы массивами, на самом деле это, скорее всего, упорядоченный хеш. Возможно неожиданное поведение при использовании цикла for со счетчиком вместо foreach. Так, например, при сортировке массива с численными индексами функциями из стандартной библиотеки, сортируются и ключи тоже.

Указатель на функцию в PHP может быть представлен замыканием или псевдотипом callback. Замыкание доступно с версии 5.3 и в коде выглядит как простое определение функции, в которую явно можно утянуть значения из контекста, например:

($args. $argsN) use ($ctxVar,$ctxVar1) { definition; }

тип может быть представлен:

·строкой (интерпретируется как название функции);

·массивом где нулевой и первый элемент - строки (интерпретируется как название статической функции класса);

·массивом где нулевой элемент - объект, а первый - строка (интерпретируется как метод у объекта).

Для проверки является ли значение вызываемым следует использовать is_callable ($var)

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


$a = 'I am a'; // Запись значения в переменную $a$a; // Вывод переменной $а

$b = 'a';$$b; // Вывод переменной $а (дополнительный $ перед переменной $b)${'a'}; // Вывод переменной $a_name (); // Вызов функции function_name

$c = 'function_name';

$c (); // Вызов функции function_name,

$d = 'Class_name';

$obj = new Class_name; // Создание объекта класса Class_name

$obj = new $d (); // Создание объекта класса Class_name

$obj->b; // Обращение к полю b объекта

$obj->c (); // Вызов метода c () объекта

$obj->$b; // Обращение к полю a объекта, так как $b = 'a'

$obj->$c (); // Вызов метода function_name () объекта, так как $c = 'function_name'


В PHP echo и print не являются функциями (хотя print имеет возвращаемое значение), а являются синтаксическими единицами. При их использовании можно опустить скобки.

Суперглобальными массивами (англ. Superglobal arrays) в PHP называются предопределённые массивы, имеющие глобальную область видимости без использования директивы global. Большая часть этих массивов содержит входные данные запроса пользователя (параметры GET-запроса, поля форм при посылке методом POST, куки и т.п.).

Все суперглобальные массивы, кроме $GLOBALS и $_REQUEST, имеют устаревшие аналоги с длинными именами, которые доступны вплоть до версии 5.3 х (начиная с 5.4.0 были удалены). Таким образом, обращения $_GET ['year'] и $HTTP_GET_VARS ['year'] идентичны (за исключением области видимости: массивы с "длинными" именами не являются суперглобальными) [12].

$GLOBALS

Массив всех глобальных переменных (в том числе и пользовательских).

$_SERVER (устаревший аналог - $HTTP_SERVER_VARS)

Содержит переменные окружения, которые операционная система передаёт серверу.

$_ENV (уст. $HTTP_ENV_VARS)

Текущие переменные среды (англ. Environment variables). Их набор специфичен для платформы, на которой выполняется скрипт.

$_GET (уст. $HTTP_GET_VARS)

Содержит параметры GET-запроса, переданные в URI после знака вопроса "?".

$_POST (уст. $HTTP_POST_VARS)

Ассоциативный массив значений полей HTML-формы при отправке методом POST. Индексы элементов соответствуют значению свойства name объектов (кнопки, формы, радио-кнопки, флажки и т.д.) HTML-формы.

$_FILES (уст. $HTTP_POST_FILES)

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

·['name'] - исходное имя файла на компьютере пользователя.

·['type'] - указанный агентом пользователя MIME-тип файла. PHP не проверяет его, и поэтому нет никаких гарантий, что указанный тип соответствует действительности.

·['size'] - размер файла в байтах.

·['tmp_name'] - полный путь к файлу во временной папке. Файл необходимо переместить оттуда функцией move_uploaded_file. Загруженные файлы из временной папки PHP удаляет самостоятельно.

·['error'] - код ошибки. Если файл удачно загрузился, то этот элемент будет равен 0 (UPLOAD_ERR_OK).

$_COOKIE (уст. $HTTP_COOKIE_VARS)

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

$_REQUEST

Содержит элементы из массивов $_GET, $_POST, $_COOKIE. С версии PHP 4.1 включает $_FILES.

$_SESSION (уст. $HTTP_SESSION_VARS)

Содержит данные сессии.поддерживает широкие объектно-ориентированные возможности, полная поддержка которых была введена в пятой версии языка.

Класс в PHP объявляется с помощью ключевого слова class. Методы и поля класса могут быть общедоступными (public, по умолчанию), защищёнными (protected) и скрытыми (private). PHP поддерживает все три основных механизма ООП - инкапсуляцию, полиморфизм и наследование (родительский класс указывается с помощью ключевого слова extends после имени класса). Поддерживаются интерфейсы (ставятся в соответствие с помощью implements). Разрешается объявление финальных, абстрактных методов и классов. Множественное наследование классов не поддерживается, однако класс может реализовывать несколько интерфейсов. Для обращения к методам родительского класса используется ключевое слово parent.

Начиная с версии 5.4.0 множественное наследование может быть реализовано с помощью механизма особенностей (англ. trait). Особенности похожи на примеси (англ. mixins), за исключением того что для них нельзя напрямую создать экземпляр. Повторное использование кода заключено в использовании кода особенности в нескольких классах. Допускается использовать в одном классе несколько особенностей. Механизм особенностей имеет средства разрешения конфликтов имён. При запуске программы код особенности будет "вкомпилирован" в код содержащего его класса.

Классы в PHP имеют ряд специальных методов (англ. magic methods), начинающихся с двух символов подчёркивания. Особо стоит отметить конструктор (__construct (), в версиях до 5.0 конструктором служил метод, одноимённый с классом) и деструктор (__destruct ()), а также методы чтения (__get ()) и записи (__set ()), свёртывания (__sleep ()) и развёртывания (__wake ()), клонирования (__clone ()) и др. Эти методы являются достаточно гибким инструментом: переопределяя их, можно добиться существенного изменения поведения объекта [13].

Экземпляры класса создаются с помощью ключевого слова new, обращение к полям и методам объекта производится с использованием оператора - >. Для доступа к членам класса из его методов используется переменная $this.

C1 extends C2 implements I1, I2

{$a;$b;__construct ($a, $b)

{:: __construct ($a, $b);

$this->a = $a;

$this->b = $b;

}function plus ()

{$this->a + $this->b;

}

/*.... */

}

$d = new C1 (1,2);$d->plus (); // 3

Начиная с пятой версии PHP, объекты передаются по ссылке:a

{$color = 'red';

}

$a = new a ();$a - > color; // red

$b = $a;

$b - > color = 'blue';$a - > color; // blue


"Paamayim Nekudotayim" или просто "двойное двоеточие". Используя эту лексему, программист может обращаться к константам, статическим или перегруженным свойствам или методам класса. При обращении к этим элементам извне класса, программист должен использовать имя этого класса. "Paamayim Nekudotayim" на первый взгляд может показаться странным словосочетанием для обозначения двойного двоеточия. Однако, во время создания Zend Engine версии 0.5 (который входил в PHP3), Andi и Zeev выбрали именно это обозначение. "Paamayim Nekudotayim" действительно значит "двойное двоеточие" на иврите. Это обозначение не менялось ни разу в течение всего времени разработки PHP.


<? phpMyClass {CONST_VALUE = 'Значение константы';

}

// Использование:: вне объявления классаMyClass:: CONST_VALUE;

? >


2.4.3 Язык программирования JavaScript

JavaScript - прототипно-ориентированный сценарный язык программирования. Является диалектом языка ECMAScript.обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

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

На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.

Название "JavaScript" является зарегистрированным товарным знаком компании Oracle Corporation.является объектно-ориентированным языком, но используемое в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными класс-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам - функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания - что придаёт языку дополнительную гибкость.

Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:

·объекты, с возможностью интроспекции;

·функции как объекты первого класса;

·автоматическое приведение типов;

·автоматическая сборка мусора;

·анонимные функции.

В языке отсутствуют такие полезные вещи, как:

·модульная система: JavaScript не предоставляет возможности управлять зависимостями и изоляцией областей видимости;

·стандартная библиотека: в частности, отсутствует интерфейс программирования приложений по работе с файловой системой, управлению потоками ввода/вывода, базовых типов для бинарных данных;

·стандартные интерфейсы к веб-серверам и базам данных;

·система управления пакетами, которая бы отслеживала зависимости и автоматически устанавливала их.

Семантика и синтаксис.

Синтаксис языка JavaScript во многом напоминает синтаксис Си и Java, семантически же язык гораздо ближе к Self, Smalltalk или даже Лиспу.

В JavaScript:

·все идентификаторы регистрозависимы,

·в названиях переменных можно использовать буквы, подчёркивание, символ доллара, арабские цифры,

·названия переменных не могут начинаться с цифры,

·для оформления однострочных комментариев используются //, многострочные и внутристрочные комментарии начинаются с /* и заканчиваются */.

Структура языка.

Структурно JavaScript можно представить в виде объединения трёх чётко различимых друг от друга частей:

·ядро (ECMAScript),

·объектная модель браузера (Browser Object Model или BOM (de <#"justify">Если рассматривать JavaScript в отличных от браузера окружениях, то объектная модель браузера и объектная модель документа могут не поддерживаться.

Объектную модель документа иногда рассматривают как отдельную от JavaScript сущность, что согласуется с определением DOM как независимого от языка интерфейса документа. В противоположность этому ряд авторов находят BOM и DOM тесно взаимосвязанными.

Взаимодействие.

В некоторых языках программирования существуют средства поддержки взаимодействия с JavaScript-кодом.

·Для PHP имеется пакет HTML_Javascript, предоставляющий интерфейс создания простых JavaScript-программ.

·Соответствующий пакет для TCL называется:: javascript. Он предоставляет команды генерации кода HTML и JavaScript.

·Пакет для Perl Data:: JavaScript позволяет переносить структуры данных Perl в JavaScript-код.

Поддержка браузерами.

На сегодняшний день поддержку JavaScript обеспечивают современные версии всех наиболее часто используемых браузеров. В Internet Explorer, Mozilla Firefox, Safari, Google Chrome, Opera имеется полная поддержка третьей редакции ECMA-262. При этом в Mozilla Firefox предпринята попытка осуществления поддержки четвёртой редакции спецификации, а первым браузером, в котором появилась неполная поддержка спецификации 3.1, явился Internet Explorer 8.

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

По мнению создателя языка, поддержка в Internet Explorer компанией Microsoft одного из существующих и применяющихся в других браузерах быстрых движков JavaScript способно привести к появлению приложений, работающих с трёхмерной графикой, написанных на JavaScript 3D-игр, использованию JavaScript в задачах, в которых ранее применялась технология Adobe Flash.

При генерации страниц в Web возникает дилемма, связанная с архитектурой "клиент-сервер". Страницы можно генерировать как на стороне клиента, так и на стороне сервера. В 1995 году специалисты компании Netscape создали механизм управления страницами на клиентской стороне, разработав язык программирования JavaScript.

Таким образом, JavaScript - это язык управления сценариями просмотра гипертекстовых страниц Web на стороне клиента.

Основная идея JavaScript состоит в возможности изменения значений атрибутов HTML-контейнеров и свойств среды отображения в процессе просмотра HTML - страницы пользователем. При этом перезагрузки страницы не происходит [14].

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

Для создания механизма управления страницами на клиентской стороне было предложено использовать объектную модель документа. Суть модели в том, что каждый HTML-контейнер - это объект, который характеризуется тройкой:

·свойства;

·методы;

·события.

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

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

Многие HTML-контейнеры имеют атрибуты. Например, контейнер якоря <A. >. </A> имеет атрибут HREF, который превращает его в гипертекстовую ссылку:


<A HREF=intuit. htm>intuit</A>


Если рассматривать контейнер якоря <A. >. </A> как объект, то атрибут HREF будет задавать свойство объекта "якорь". Программист может изменить значение атрибута и, следовательно, свойство объекта:. links [0]. href="intuit. htm";

Не у всех атрибутов можно изменять значения. Например, высота и ширина графической картинки определяются по первой загруженной в момент отображения страницы картинке. Все последующие картинки, которые заменяют начальную, масштабируются до нее. Справедливости ради следует заметить, что в Microsoft Internet Explorer размер картинки может меняться.

Для общности картины свойствами в JavaScript наделены объекты, которые не имеют аналогов в HTML-разметке. Например, среда исполнения, называемая объектом Navigator, или окно браузера, которое является вообще самым старшим объектом JavaScript.

В терминологии JavaScript методы объекта определяют функции изменения его свойств. Например, с объектом "документ" связаны методы open (), write (), close ().

Эти методы позволяют сгенерировать или изменить содержание документа.

Например:

hello ()

{ id=window. open ("","example","width=400, height=150");. focus (); id. document. open ();. document. write ("<H1>Привет! </H1>");. document. write ("<HR><FORM>");. document. write ("<INPUT TYPE=button VALUE='Закрыть окно' ");. document. write ("onClick='window. opener. focus (); window. close (); '>");. document. close ();

}


В этом примере метод open () открывает поток записи в документ, метод write () осуществляет эту запись, метод close () закрывает поток записи в документ. Все происходит так же, как и при записи в обычный файл.

Кроме методов и свойств объекты характеризуются событиями. Собственно, суть программирования на JavaScript заключается в написании обработчиков этих событий. Например, с объектом типа button (контейнер INPUT типа button - "Кнопка") может происходить событие click, т.е. пользователь может нажать на кнопку. Для этого атрибуты контейнера INPUT расширены атрибутом обработки события click - onClick. В качестве значения этого атрибута указывается программа обработки события, которую должен написать на JavaScript автор HTML - документа:

<INPUT TYPE=button VALUE="Нажать" onClick="window. alert ('Пожалуйста, нажмите еще раз'); ">

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

Примечание. Строго говоря, каждый браузер, будь то Internet Explorer, Netscape Navigator или Opera, имеет свою объектную модель.

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

Схема URL (Uniform Resource Locator) - это один из основных элементов Web - технологии. Каждый информационный ресурс в Web имеет свой уникальный URL.

URL указывают в атрибуте HREF контейнера A, в атрибуте SRC контейнера IMG, в атрибуте ACTION контейнера FORM и т.п. Все URL подразделяются на схемы доступа, которые зависят от протокола доступа к ресурсу, например, для доступа к FTP-архиву применяется схема ftp, для доступа к Gopher-архиву - схема gopher, для отправки электронной почты - схема smtp. Тип схемы определяется по первому компоненту URL: <#"justify">1.размещение кода внутри HTML-документа;

2.условная генерация HTML-разметки на стороне браузера.

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

Объектно-ориентированный язык программирования предполагает наличие иерархии классов объектов. В JavaScript такая иерархия начинается с класса объектов Window, т.е. каждый объект приписан к тому или иному окну. Для обращения к любому объекту или его свойству указывают полное или частичное имя этого объекта или свойства объекта, начиная с имени объекта старшего в иерархии, в который входит данный объект:

Вообще говоря, JavaScript не является классическим объектным языком (его еще называют облегченным объектным языком). В нем нет наследования и полиморфизма. Программист может определить собственный класс объектов через оператор function, но чаще пользуется стандартными объектами, их конструкторами и вообще не применяет деструкторы классов. Это объясняется тем, что область действия JavaScript-программы обычно не распространяется за пределы текущего окна.

Иногда у разных объектов JavaScript бывают определены свойства с одинаковыми именами. В этом случае нужно четко указывать, свойство какого объекта программист хочет использовать. Например, Window и Document имеют свойство location. Только для Window это объект класса Location, а для Document - строковый литерал, который принимает в качестве значения URL загруженного документа.

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

Например, для всех объектов по умолчанию определен метод преобразования в строку символов: toString (). В примере с location, если обратиться к window. location в строковом контексте, будет выполнено преобразование по умолчанию, и программист этого не заметит:


<SCRIPT>. write (window. location);. write ("<BR>");. write (document. location);

</SCRIPT>


Однако разница все-таки есть, и довольно существенная. В том же примере

получим длины строковых констант:


<SCRIPT>=toString (window. location);=toString (document. location);=window. location. href;. write (w. length);. write (d. length);. write (h. length);

</SCRIPT>


Результат исполнения получите сами.

Как легко убедиться, при обращении к свойству объекта типа URL, а свойство location как раз является объектом данного типа, длина строки символов после преобразования будет другой.

Класс объектов Window - это самый старший класс в иерархии объектов JavaScript. К нему относятся объект Window и объект Frame.

Объект Window ассоциируется с окном программы-браузера, а объект Frame - с окнами внутри окна браузера, которые порождаются последним при использовании автором HTML-страниц контейнеров FRAMESET и FRAME.

В JavaScript строка является любым фрагментом текста. Как и многие другие объекты в JavaScript, строки можно определять несколькими различными способами:

myString = 'Hello, World! ';myString = new String ('Hello, World! ');


Первый метод используется наиболее часто. Второй метод применяется редко и только для гарантии, что получаемый объект является строкой. Например:

n = 5;s = new String (n*20);


В этом примере s будет строкой " 100. Если просто задать s как n*20, то s будет содержать число 100. Однако поскольку JavaScript является слабо типизированным языком, то эти различия не будут существенно влиять на то, что вы делаете.

Строковые объекты (var n = new String ('Hello World')) технически являются в Internet Explorer более медленными при некоторых операциях, чем строковые литералы (var n = 'Hello World'). Однако это поведение совершенно противоположно в других браузерах. В любом браузере различие редко бывает настолько заметно, чтобы об этом беспокоиться.

Единственное важное различие состоит в том, что eval () не работает со строковыми объектами.

Что, если в строке имеется апостроф? Следующий код работать не будет:

n = 'The dog took it's bone outside';


Легко видеть, что апостроф в "it's " заканчивает строку. Поэтому мы получаем строку "The dog took it", за которой следует " s bone outside'". Это продолжение само по себе не является допустимым кодом JavaScript (или правильным грамматически, если на то пошло), поэтому будет получена ошибка [15].

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

n = "The dog took it's bone outside";n = 'The dog took it\'s bone outside';


Если в строке должен присутствовать символ \, то он экранируется таким же образом: '\\'.

В предыдущей лекции мы встречались с функциями indexOf и lastIndexOf.

Напомним, что они делают. Функция indexOf возвращает число, определяющее первую позицию одной строки в другой. Если разыскиваемая строка не существует, то indexOf возвращает - 1. Функция lastIndexOf идентична indexOf, но возвращает не первую позицию вхождения строки, а последнюю.

Тот факт, что функции indexOf и lastIndexOf возвращают - 1, если строка не существует, является очень полезным и позволяет использовать эти функции для достаточно распространенной задачи - проверки того, что одна строка существует внутри другой.

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

·charAt () сообщает, какой символ находится в определенной позиции строки.

Поэтому 'Test'. charAt (1) = 'e'.

·length сообщает длину строки. 'Test'. length = 4.

·substring () выдает строку между двумя индексами. 'Test'. substring (1,2) = 'e'.

·substr () аналогична substring (), только второе число является не индексом, а длиной возвращаемой строки. Если это число указывает на позицию за пределами строки, то substr () вернет существующую часть строки.

·'Test'. substr (1,2) = 'es';

·toLowerCase () и toUpperCase () делают то, что обозначают: преобразуют строку в нижний или верхний регистр символов соответственно.


'Test'. toUpperCase () = 'TEST';


Примеры всех приведенных выше функций:

('This is a Test'. indexOf ('T')); // 0('This is a Test'. lastIndexOf ('T')); // 10('This is a Test'. charAt (5)); // i('This is a Test'. length); // 14('This is a Test'. substring (5,9)); // is a('This is a Test'. substr (5,9)); // is a Test('This is a Test'. toUpperCase ()); // THIS IS A TEST('This is a Test'. toLowerCase ()); // this is a test


Последней строковой функцией, которая будет рассмотрена, является eval (). eval () получает строку и выполняет строку, как если бы это был код JavaScript.

("alert ('Hello, World! ')");


В этом примере будет выведено сообщение "Hello, World!", как если бы функция alert была написана обычным образом. Это может быть очень полезно, так как позволяет создать содержащую код строку, а затем ее выполнить.

Объект Math в JavaScript содержит функции, позволяющие сделать почти все, что можно сделать с числами помимо обычной арифметики. Math. PI, например, содержит просто число 3.141592653589793. В нем содержатся тригонометрические функции (sin, cos, tan, и т.д.), функции для округления чисел (Math. floor возвращает число, округленное с недостатком, Math. ceil возвращает число, округленное с избытком, а Math. round округляет число "нормально") и многие другие.

Двумя наиболее распространенными задачами, связанными с числами, являются преобразование числа в строку и строки в число. JavaScript является слабо типизированным языком, а это означает, что типы данных не имеют большого значения, но существуют некоторые случаи, когда надо быть уверенным, что имеется число или строка. Если надо сложить, например, 5 и число, которое вводит пользователь, то надо быть уверенным, что введено число, а не слово "Привет".

n = parseInt ("3.14"); // 3n = parseFloat ("3.14") // 3.14


Функция parseInt возвращает целое значение своего аргумента. Аргументы "3.14", "3", "3.00001 " и "3.9999 " превратятся в значение 3.

Функция parseFloat, с другой стороны, возвращает также любое десятичное значение. Обе эти функции пытаются "очистить" данные перед возвращением числа. Например, parseInt ("3a") вернет значение 3.

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

n = 5;m = n. toString ();m = n+'';m = new String (n);


Предпочтительным методом является "n. toString ()", но необходимо отметить, что часто используется второй метод. Например, если имеется уведомление alert ('Имеется ' + apples + ' яблок'), то число apples автоматически преобразуется в строку.

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

students = new Array ();[0] = 'Sam';[1] = 'Joe';[2] = 'Sue';[3] = 'Beth';


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

students = ['Sam', 'Joe', 'Sue', 'Beth'];


Это код создает точно такой же массив, что и предыдущий пример, но, как можно видеть, он значительно более компактный и ничуть не сложнее для понимания. Скобки ([и]) в этом примере сообщают коду, что будет создан массив. Простая запись "var students = []; " является тем же самым, что и запись "var students = new Array ();".

Чтобы обратиться к любому элементу массива, необходимо знать его индекс. В первом примере можно видеть, что в скобках находятся числа (0-3). Это индексы. Если требуется узнать имя третьего студента, то надо будет написать "alert (students [2]);". Массивы в JavaScript начинают индексацию с 0, а не с 1. Поэтому первым элементом в массиве будет students [0], вторым - students [1], сотым - students [99], и т.д. Для этого не существует никакой реальной причины, просто так устроен JavaScript и многие другие языки программирования. Некоторые другие языки используют в качестве первого индекса 1.

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

students = ['Sam', 'Joe', 'Sue', 'Beth'];suffixes = ['1st', '2nd', '3rd', '4th'];(var i=0; i<students. length; i++) {(suffixes [i] +' студент - '+students [i]);

}


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

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

spreadsheet = [

['A1', 'B1', 'C1', 'D1'],

['A2', 'B2', 'C2', 'D2'],

['A3', 'B3', 'C3', 'D3'],

['A4', 'B4', 'C4', 'D4']

];


Переносы строк в JavaScript обычно не имеют значения. В этом примере переносы строк используются для придания коду большей наглядности и не влияют на код никаким образом. [16]

2.4.4 Таблица стилей CSS

CSS (англ. Cascading Style Sheets - каскадные таблицы стилей) - формальный язык описания внешнего вида документа, написанного с использованием языка разметки.

Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам, например, к SVG или XUL.используется создателями веб-страниц для задания цветов, шрифтов, расположения отдельных блоков и других аспектов представления внешнего вида этих веб-страниц. Основной целью разработки CSS являлось разделение описания логической структуры веб-страницы (которое производится с помощью HTML или других языков разметки) от описания внешнего вида этой веб-страницы (которое теперь производится с помощью формального языка CSS). Такое разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом. Кроме того, CSS позволяет представлять один и тот же документ в различных стилях или методах вывода, таких как экранное представление, печатное представление, чтение голосом (специальным голосовым браузером или программой чтения с экрана), или при выводе устройствами, использующими шрифт Брайля [17].

Способы подключения CSS к документу.

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

·когда таблица стилей находится в отдельном файле, она может быть подключена к веб-документу посредством тега <#"justify"><head>

..

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

</head>


·когда таблица стилей находится в отдельном файле, она может быть подключена к веб-документу посредством директивы @import, располагающейся в этом документе между тегами <style> и </style> (которые, в свою очередь, располагаются в этом документе между тегами <head> и </head>) сразу после тега <style>, которая также указывает (в своих скобках, после слова url) на адрес этой таблицы стилей. Все правила этой таблицы действуют на протяжении всего документа;

·

<head>

..

<style type="text/css" media="all">

@import url (style. css);

</style>

</head>


·когда таблица стилей описана в самом документе, она может располагаться в нём между тегами <style> и </style> (которые, в свою очередь, располагаются в этом документе между тегами <head> и </head>). Все правила этой таблицы действуют на протяжении всего документа;


<head>

..

<style type="text/css">{: red;

}

</style>

</head>


·когда таблица стилей описана в самом документе, она может располагаться в нём в теле какого-то отдельного тега (посредством его атрибута style) этого документа. Все правила этой таблицы действуют только на содержимое этого тега.


<p style="font-size: 21px; color: green; ">Рассказ о том, как вредно красить батареи</p>


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

Для добавления CSS к XML-документу, последний должен содержать специальную ссылку на таблицу стилей. Например:


<? xml-stylesheet type="text/css" href="style. css"? >


Иерархия элементов внутри документа.

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

Элемент является родителем другого элемента, если в иерархической структуре документа он находится сразу, непосредственно над этим элементом. Элемент является предком другого элемента, если в иерархической структуре документа он находится где-то выше этого элемента.

Например, в документе присутствуют два абзаца p, включающие в себя шрифт с полужирным начертанием b. Тогда элементы b будут дочерними элементами своих родительских элементов p, и потомками своих предков body. В свою очередь, для элементов p элемент body будет являться только родителем. И кроме того, эти два элемента p будут являться сестринскими элементами, как имеющими одного и того же родителя - body.

В CSS могут задаваться при помощи селекторов не только одиночные элементы, но и элементы, являющиеся потомками, дочерними или сестринскими элементами других элементов (см. подраздел "виды селекторов").

Правила построения CSS.

В первых трёх случаях подключения таблицы CSS к документу (см. выше) каждое правило CSS из таблицы стилей имеет две основные части - селектор и блок объявлений. Селектор, расположенный в левой части правила, определяет, на какие части документа распространяется правило. Блок объявлений располагается в правой части правила. Он помещается в фигурные скобки, и, в свою очередь, состоит из одного или более объявлений, разделённых знаком ";". Каждое объявление представляет собой сочетание свойства CSS и значения, разделённых знаком ":". Селекторы могут группироваться в одной строке через запятую. В таком случае свойство применяется к каждому из них.

селектор, селектор {

свойство: значение;

свойство: значение;

свойство: значение;

}

В четвёртом случае подключения таблицы CSS к документу (см. список) правило CSS (являющееся значением атрибута style тега, на который оно действует) представляет собой перечень объявлений ("свойство CSS: значение"), разделённых знаком ";".

Виды селекторов.

Селекторы правила CSS могут быть:

·универсальный селектор;

* {margin: 0; padding: 0; }

·селекторами элементов;{font-family: Garamond, serif; }

·селекторами классов;

. note {color: red; background: yellow; font-weight: bold; }

·селекторами идентификаторов;

#paragraph1 {margin: 0; }

·селекторами атрибутов;[href="#"justify">·селекторами потомков (контекстными селекторами);#paragraph1 p. note {color: red; }

·селекторами дочерних элементов;. note > b {color: green; }

·селекторами сестринских элементов;+ p {font-size: 24pt; }

·селекторами псевдоклассов;: active {color: yellow; }

·селекторами псевдоэлементов.:: first-letter {font-size: 32px; }

·Также в CSS существует так называемый универсальный селектор, обозначающий любой элемент, встречающийся в документе. Например, * {color: red; }. Перед любым селектором, задающим класс или идентификатор, можно поставить знак универсального селектора, в результате получится эквивалентное выражение, например,. first {…} и *. first {…} имеют один и тот же смысл.

Классы элементов. Идентификаторы элементов.

Класс или идентификатор может быть присвоен какому-нибудь элементу (тегу) HTML посредством атрибутов class или id этого элемента (тега):


<div id="first">. </div>

<p>


Основное отличие между классами элементов и идентификаторами элементов в том, что в документе какой-нибудь класс может быть присвоен сразу нескольким элементам, а идентификатор - только одному. Также отличие в том, что могут существовать множественные классы (когда класс элемента состоит из нескольких слов, разделённых пробелами). Для идентификаторов такое невозможно.

Важно отметить следующее отличие идентификатора от класса: идентификаторы широко используются в JavaScript для нахождения уникального элемента в документе [18].

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

Свойства классов и идентификаторов задаются с помощью соответствующих селекторов. Причём может быть задано как свойство класса в целом (в таком случае селектор начинается с". "), или свойство идентификатора самого по себе (в таком случае селектор начинается с "#"), так и свойство какого-нибудь элемента этого класса или с этим идентификатором.

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

Наследование. Каскадирование. Приоритеты стилей CSS.

Применение CSS к документам HTML основано на принципах наследования и каскадирования. Принцип наследования заключается в том, что свойства CSS, объявленные для элементов-предков, наследуются элементами потомками. Но, естественно, не все свойства CSS наследуются - например, если для тега параграфа p средствами CSS задана рамка, то она не будет наследоваться ни одним тегом, содержащимся в данном теге p, а вот если для параграфа p средствами CSS задан цвет шрифта (например, color: green;), то это свойство будет унаследовано каждым элементом-тегом, находящимся в параграфе.

Принцип каскадирования применяется в случае, когда какому-то элементу HTML одновременно поставлено в соответствие более одного правила CSS, то есть, когда происходит конфликт значений этих правил. Чтобы разрешить такие конфликты вводятся правила приоритета.

Наиболее низким приоритетом обладает стиль браузера;

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

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

·Самым низким приоритетом обладают стили, наследуемые в документе элементом от своих предков;

·Более высоким приоритетом обладают стили, заданные во внешних таблицах стилей, подключённых к документу;

·Ещё более высоким приоритетом обладают стили, заданные непосредственно селекторами всех десяти видов (см. подраздел "виды селекторов"), содержащимися в контейнерах style данного документа. Нередки случаи, когда к какому-нибудь элементу имеют отношение, задают его вид, несколько таких селекторов. Такие конфликты между ними разрешаются с помощью расчёта специфичности каждого такого селектора и применения этих селекторов к данному элементу в порядке убывания их специфичностей. При расчёте специфичности селектора принимается во внимание:

·количество идентификаторов (#id) в селекторе - ( (1,0,0,0) за каждый объявленный идентификатор в селекторе правила CSS);

·количество атрибутов ([attr], [attr="value"]) в селекторе - ( (0,1,0,0) за каждый объявленный атрибут в селекторе правила CSS);

·количество классов (. class) и псевдоклассов (: pseudoclass) в селекторе - ( (0,0,1,0) за каждый объявленный класс и псевдокласс в селекторе правила CSS);

·количество тегов в селекторе (H1, INPUT) - ( (0,0,0,1) за каждый объявленный тег в селекторе правила CSS).

Принцип расчёта таков, что, например, (1,0,0,0) будет иметь большую специфичность, соответственно - бо?льший приоритет, чем даже (0,10,0,0), (0,1,0,0) будет иметь большую специфичность, больший приоритет, чем (0,0,10,0), а (0,0,1,0) будет иметь больший приоритет, чем (0,0,0,10). Если же рассчитанные таким образом специфичности окажутся одинаковыми, то к элементу будет применено правило, описанное селектором, расположенным в документе ниже других.

·Ещё более высоким приоритетом обладают стили, объявленные непосредственно в теге данного элемента посредством атрибута style этого тега;

·И наконец самым высоким приоритетом обладают стили, объявленные автором страницы или пользователем, с помощью сопроводительного слова! important. Если таких свойств несколько, то предпочтение отдаётся в первую очередь стилям, заданным пользователем, а для остальных свойств (которые будут являться задаваемыми автором страницы) потребуется определить их специфичности по принципам, описанным выше, и применять эти свойства в порядке убывания этих их специфичностей [19].

Пример таблицы стилей.

Пример таблицы стилей (в таком виде она может быть либо размещена в отдельном файле. css, либо же обрамлена тегами <style> и размещена в "шапке" той самой веб-страницы, на которую она действует):

{family: Garamond, serif;

}{size: 110 %;: red;: white;

}

. note {: red;: yellow;weight: bold;

}#paragraph1 {: 0;

}: hover {decoration: none;

}

#news p {: blue;

}

[type="button"] {color: green;

}


Здесь приведено семь правил CSS с селекторами p, h2,. note, p#paragraph1, a: hover, #news p и [type="button"]:

)Первое правило присвоено HTML-элементу p (абзацу) - назначен стиль. Абзацы будут отображаться шрифтом Garamond, или, если такой шрифт недоступен, каким-либо другим шрифтом с засечками ("serif").

2)Второе правило присвоено HTML-элементу h2 (заголовку второго уровня). Заголовок второго уровня будет отображаться красным на белом фоне с увеличеннымкеглем.

)Третье правило будет применено к ЛЮБОМУ элементу, атрибут class которого равен 'note'. Например, к параграфу: <p>

)Четвёртое правило будет применяться только к элементу p, атрибут id которого равен paragraph1. Такой элемент не будет иметь внешних отступов (margin).

)Пятое правило определяет стиль hover для элементов a - гиперссылок. По умолчанию, в большинстве браузеров текст элементов a подчеркивается. Это правило уберёт подчеркивание, когда указатель мыши находится над этими элементами.

)Шестое правило, применяется для элементов p, которые находятся внутри КАКОГО-ЛИБО элемента с атрибутом id, равным "news" (#news p - это типичный случай селектора потомков, см.5-й пункт списка выше).

)Седьмое правило применяется для всех элементов, у которых атрибут type равен button. Например, это правило будет применено к элементу <input type="button"> (обычная кнопка), изменив его цвет фона на зеленый.

CSS-вёрстка

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

Преимущества:

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

·Уменьшение времени загрузки страниц сайта за счет переноса правил представления данных в отдельный CSS-файл. В этом случае браузер загружает только структуру документа и данные, хранимые на странице, а представление этих данных загружается браузером только один раз и может быть закэшировано.

·Простота последующего изменения дизайна. Не нужно править каждую страницу, а лишь изменить CSS-файл.

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

Недостатки:

·Различное отображение вёрстки в различных браузерах (особенно устаревших), которые по-разному интерпретируют одни и те же данные CSS.

·Часто встречающаяся необходимость на практике исправлять не только один CSS-файл, но и теги HTML, которые сложным и ненаглядным способом связаны с селекторами CSS, что иногда сводит на нет простоту применения единых файлов стилей и значительно удлиняет время редактирования и тестирования. [20]


2.4.5 Система управления базами данных MySQL

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

Итак, хранить данные независимо от программ, так, что они связаны между собой и организованы по определенным правилам, целесообразно. Теперь необходимо определиться с тем, как хранить данные, по каким правилам они должны быть организованы. Способов существует множество. Наиболее популярные - объектная и реляционная модели данных.

Автором реляционной модели считается Э. Кодд, который первым предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декартово произведение) и показал, что любое представление данных сводится к совокупности двумерных таблиц особого вида, известного в математике как отношение.

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

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

Примеры объектных СУБД: Cache, GemStone (от Servio Corporation), ONTOS (ONTOS).

В последнее время производители СУБД стремятся соединить два этих подхода и проповедуют объектно-реляционную модель представления данных. Примеры таких СУБД - IBM DB2 for Common Servers, Oracle8.

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

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

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

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

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

Например, есть три таблицы: содержащая информацию об исторических личностях (Persons), содержащая информацию об их изобретениях (Artifacts) и содержащая изображения как личностей, так и артефактов (Images).

Первичным ключом во всех этих таблицах является поле id (идентификатор). В таблице Artifacts есть поле author, в котором записан идентификатор, присвоенный автору изобретения в таблице Persons. Каждое значение этого поля является внешним ключом для первичного ключа таблицы Persons. Кроме того, в таблицах Persons и Artifacts есть поле photo, которое ссылается на изображение в таблице Images. Эти поля также являются внешними ключами для первичного ключа таблицы Images и устанавливают однозначную логическую связь Persons-Images и Artifacts-Images. То есть если значение внешнего ключа photo в таблице личности равно 10, то это значит, что фотография этой личности имеет id=10 в таблице изображений. Таким образом, внешние ключи используются для организации связей между таблицами базы данных (родительскими и дочерними) и для поддержания ограничений ссылочной целостности данных.

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

Для этого (для оптимизации производительности запросов) производят индексирование некоторых полей таблицы. Использовать индексы полезно для быстрого поиска строк с указанным значением одного столбца. Без индекса чтение таблицы осуществляется по всей таблице, начиная с первой записи, пока не будут найдены соответствующие строки. Чем больше таблица, тем больше накладные расходы. Если же таблица содержит индекс по рассматриваемым столбцам, то база данных может быстро определить позицию для поиска в середине файла данных без просмотра всех данных. Это происходит потому, что база данных помещает проиндексированные поля поближе в памяти, так, чтобы можно было побыстрее найти их значения. Для таблицы, содержащей 1000 строк, это будет как минимум в 100 раз быстрее по сравнению с последовательным перебором всех записей. Однако в случае, когда необходим доступ почти ко всем 1000 строкам, быстрее будет последовательное чтение, так как при этом не требуется операций поиска по диску. Так что иногда индексы бывают только помехой. Например, если копируется большой объем данных в таблицу, то лучше не иметь никаких индексов. Однако в некоторых случаях требуется задействовать сразу несколько индексов (например, для обработки запросов к часто используемым таблицам).

Если говорить о Mysql, то там существует три вида индексов: PRIMARY, UNIQUE, и INDEX, а слово ключ (KEY) используется как синоним слова индекс (INDEX). Все индексы хранятся в памяти в виде B-деревьев.- уникальный индекс (ключ) с ограничением, что все индексированные им поля не могут иметь пустого значения (т.е. они NOT NULL). Таблица может иметь только один первичный индекс, но он может состоять из нескольких полей.- ключ (индекс), задающий поля, которые могут иметь только уникальные значения.- обычный индекс (как мы описали выше). В Mysql, кроме того, можно индексировать строковые поля по заданному числу символов от начала строки.- это реляционная система управления базами данных. То есть данные в ее базах хранятся в виде логически связанных между собой таблиц, доступ к которым осуществляется с помощью языка запросов SQL. Mysql - свободно распространяемая система, т.е. платить за ее применение не нужно. Кроме того, это достаточно быстрая, надежная и, главное, простая в использовании СУБД, вполне подходящая для не слишком глобальных проектов.

Работать с Mysql можно не только в текстовом режиме, но и в графическом. Существует очень популярный визуальный интерфейс (кстати, написанный на PHP) для работы с этой СУБД. Называется он PhpMyAdmin. Этот интерфейс позволяет значительно упростить работу с базами данных в Mysql.

Функции любой СУБД включают:

·Создание, удаление, изменение базы данных (БД);

·Добавление, изменение, удаление, назначение прав пользователя;

·Внесение, удаление и изменение данных в БД (таблиц и записей);

·Выборку данных из БД.

К первым двум функциям имеют доступ только администраторы СУБД или привилегированные пользователи. Рассмотрим, как решаются последние две задачи (на самом деле это семь задач).

Прежде чем что-либо делать с данными, нужно создать таблицы, в которых эти данные будут храниться, изменять структуру этих таблиц и удалять их, если потребуется. Для этого в языке SQL существуют операторы CREATE TABLE, ALTER TABLE и DROP TABLE. [21]

Оператор CREATE TABLE создает таблицу с заданным именем в текущей базе данных. Правила для допустимых имен таблицы приведены в документации. Если нет активной текущей базы данных или указанная таблица уже существует, то возникает ошибка выполнения команды.

В версии Mysql 3.22 и более поздних имя таблицы может быть указано как имя_базы_данных. имя_таблицы. Эта форма записи работает независимо от того, является ли указанная база данных текущей.

В версии Mysql 3.23 при создании таблицы можно использовать ключевое слово TEMPORARY. Временная таблица автоматически удаляется по завершении соединения, а ее имя действительно только в течение данного соединения. Это означает, что в двух разных соединениях могут использоваться временные таблицы с одинаковыми именами без конфликта друг с другом или с существующей таблицей с тем же именем (существующая таблица скрыта, пока не удалена временная таблица). В версии Mysql 4.0.2 для создания временных таблиц необходимо иметь привилегии CREATE TEMPORARY TABLES.

В версии Mysql 3.23 и более поздних можно использовать ключевые слова IF NOT EXISTS для того, чтобы не возникала ошибка, если указанная таблица уже существует. Следует учитывать, что при этом идентичность структур этих таблиц не проверяется.

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

Синтаксис:[TEMPORARY] TABLE [IF NOT EXISTS] имя_таблицы [ (определение_столбца,.)] [опции_таблицы] [select_выражение]

В выражении определение_столбца перечисляют, какие столбцы должны быть созданы в таблице. Каждый столбец таблицы может быть пустым (NULL), иметь значение по умолчанию, являться ключом или автоинкрементом. Кроме того, для каждого столбца обязательно указывается тип данных, которые будут в нем храниться. Если не указывается ни NULL, ни NOT NULL, то столбец интерпретируется так, как будто указано NULL. Если поле помечают как автоинкремент (AUTO_INCREMENT), то его значение автоматически увеличивается на единицу каждый раз, когда происходит добавление данных в таблицу и в это поле записывается пустое значение (NULL, т.е. ничего не записывается) или 0. Автоинкремент в таблице может быть только один, и при этом он обязательно должен быть проиндексирован._INCREMENT начинается с 1. Наличие автоинкремента является одной из особенностей Mysql. Формально описание столбца (определение_столбца) выглядит так:

имя_столбца тип [NOT NULL | NULL] [DEFAULT значение_по_умолчанию] [AUTO_INCREMENT] [PRIMARY KEY] [reference_definition]

Тип столбца (тип в выражении определение_столбца) может быть одним из следующих:

целый: INT [ (length)] [UNSIGNED] [ZEROFILL]

действительный: REAL [ (length,decimals)] [UNSIGNED] [ZEROFILL]

символьный: CHAR (length) [BINARY] и VARCHAR (length) [BINARY]

дата и время: DATE и TIME

для работы с большими объектами: BLOB

текстовый: TEXT

перечислимое множество: ENUM (value1,value2,value3,.) и SET (value1,value2,value3,.).

Вместо перечисления столбцов и их свойств в определении_столбца можно задавать списки ключевых и индексных полей, ограничения и проверки:KEY (имя_индексируемого_столбца,.) или[имя_индекса] (имя_индексируемого_столбца,.) или[имя_индекса] (имя_индексируемого_столбца,.) или[INDEX] [имя_индекса] (имя_индексируемого_столбца,.) или[INDEX] [имя_индекса] (имя_индексируемого_столбца,.) или

[CONSTRAINT symbol] FOREIGN KEY [имя_индекса] (имя_индексируемого_столбца,.) [reference_definition] или(expr)

При задании всех этих элементов указывается список полей (столбцов), которые будут входить в индекс, ключ или ограничение, имя_индексируемого_столбца записывается следующим образом:

имя_столбца [ (длина_индекса)] FOREIGN KEY, CHECK и REFERENCES на самом деле ничего не делают в Mysql. Они добавлены только для совместимости с другими SQL-серверами.

Поэтому на них мы останавливаться не будем.

Кроме всего перечисленного, при создании таблицы можно указать некоторые ее свойства (опции_таблицы), например такие:

тип таблицы: TYPE = {BDB | HEAP | ISAM | Inno DB? | MERGE | MRG_MYISAM | MYISAM }

начальное значение счетчика автоинкремента: AUTO_INCREMENT = число

средняя длина строк в таблице: AVG_ROW_LENGTH = число

комментарии к таблице (строка из 60 символов): COMMENT = "строка" максимальное и минимальное предполагаемое число строк: MAX_ROWS = число и MIN_ROWS = число

И последний (опять же опциональный) элемент команды CREATE - это выражение SELECT (select_выражение). Синтаксис такой:

[IGNORE | REPLACE] SELECT.

(любое корректное выражение SELECT)

Если при создании таблицы в команде CREATE указывается выражение SELECT, то все поля, полученные выборкой, добавляются в создаваемую таблицу.

Например создание таблицы Persons:>CREATE TABLE Persons (id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR (50), last_name VARCHAR (100), death_date INT, description TEXT, photo INT, citienship CHAR (50) DEFAULT 'Russia');

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

Показать все базы данных:>SHOW databases;

Сделать текущей базу данных book и показать все таблицы в ней:>use book;>show tables;

Показать все столбцы в таблице Persons:> show columns from Persons;

Оператор DROP TABLE удаляет одну или несколько таблиц. Все табличные данные и определения удаляются, так что при работе с этой командой следует соблюдать осторожность.

Синтаксис:TABLE [IF EXISTS] имя_таблицы [, имя_таблицы,.] [RESTRICT | CASCADE]

В версии Mysql 3.22 и более поздних можно использовать ключевые слова IF EXISTS, чтобы предупредить ошибку, если указанные таблицы не существуют.

Опции RESTRICT и CASCADE позволяют упростить перенос программы с других СУБД. В данный момент они не задействованы.> DROP TABLE IF EXISTS Persons, Artifacts, test;

Оператор ALTER TABLE обеспечивает возможность изменять структуру существующей таблицы. Например, можно добавлять или удалять столбцы, создавать или уничтожать индексы или переименовывать столбцы либо саму таблицу. Можно также изменять комментарий для таблицы и ее тип.

Синтаксис:[IGNORE] TABLE имя_таблицы alter_specification [, alter_specification.]

Можно производить следующие изменения в таблице (все они записываются в alter_specification):

Добавление поля:[COLUMN] определение_столбца [FIRST | AFTER имя_столбца] или ADD [COLUMN] (определение_столбца, определение_столбца,.)

Здесь, как и далее, определение_столбца записывается так же, как при создании таблицы.

Добавление индексов:INDEX [имя_индекса] (имя_индексируемого_столбца,.) или ADD PRIMARY KEY (имя_индексируемого_столбца,.) или ADD UNIQUE [имя_индекса] (имя_индексируемого_столбца,.) или ADD FULLTEXT [имя_индекса] (имя_индексируемого_столбца,.)

Изменение поля:[COLUMN] имя_столбца {SET DEFAULT literal | DROP DEFAULT} или CHANGE [COLUMN] старое_имя_столбца определение_столбца или MODIFY [COLUMN] определение_столбца

Удаление поля, индекса, ключа:[COLUMN] имя_столбца DROP PRIMARY KEY DROP INDEX имя_индекса

Переименование таблицы:[TO] новое_имя_таблицы.

Переупорядочение полей таблицы:BY поле или опции_таблицы

Если оператор ALTER TABLE используется для изменения определения типа столбца, но DESCRIBE имя_таблицы показывает, что столбец не изменился, то, возможно, Mysql игнорирует данную модификацию по одной из причин, описанных в специальном разделе документации. Например, при попытке изменить столбец VARCHAR на CHAR Mysql будет продолжать использовать VARCHAR, если данная таблица содержит другие столбцы с переменной длиной [22].

Оператор ALTER TABLE во время работы создает временную копию исходной таблицы. Требуемое изменение выполняется на копии, затем исходная таблица удаляется, а новая переименовывается. Это делается для того, чтобы в новую таблицу автоматически попадали все обновления, кроме неудавшихся. Во время выполнения ALTER TABLE исходная таблица доступна для чтения другими клиентами.

Операции обновления и записи в этой таблице приостанавливаются, пока не будет готова новая таблица. Следует отметить, что при использовании любой другой опции для ALTER TABLE, кроме RENAME, Mysql всегда будет создавать временную таблицу, даже если данные, строго говоря, и не нуждаются в копировании (например, при изменении имени столбца).

Например:

Добавление в созданную таблицу Persons поле для записи года рождения человека:> ALTER TABLE Persons ADD bday INTEGER AFTER last_name;

Добавление в таблицу Persons поля для записи года рождения человека.

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

Кроме того, оператор SELECT можно использовать для извлечения строк, вычисленных без ссылки на какую-либо таблицу. Например, чтобы вычислить, чему равно 2*2, нужно просто написать Mysql> SELECT 2*2;

Упрощенно структуру оператора SELECT можно представить следующим образом:select_выражение1, select_выражение2, .

[FROM table_references [WHERE where_definition] [ORDER BY {число | имя_столбца | формула} [ASC | DESC],.]]

Квадратные скобки [] означают, что использование находящегося в них оператора необязательно, вертикальная черта | означает перечисление возможных вариантов. После ключевого слова ORDER BY указывают имя столбца, число (целое беззнаковое) или формулу и способ упорядочения (по возрастанию - ASC, или по убыванию - DESC). По умолчанию используется упорядочение по возрастанию.

Когда в select_выражении мы пишем "*", это значит выбрать все столбцы. Кроме "*" в select_выражения могут использоваться функции типа max, min и avg.

Например:

Выбрать из таблицы Persons все данные, для которых поле first_name имеет значение 'Александр':> SELECT * FROM Persons WHERE first_name='Александр';

Использование оператора SELECT:

Выбрать название и описание (title, description) артефакта под номером 10:> SELECT title,description FROM Artifacts WHERE id=10;

Оператор INSERT вставляет новые строки в существующую таблицу. Оператор имеет несколько форм. Параметр имя_таблицы во всех этих формах задает таблицу, в которую должны быть внесены строки. Столбцы, для которых задаются значения, указываются в списке имен столбцов (имя_столбца) или в части SET.

Синтаксис:[LOW_PRIORITY | DELAYED] [IGNORE]

[INTO] имя_таблицы [ (имя_столбца,.)] VALUES (выражение,.), (.),.

Эта форма команды INSERT вставляет строки в соответствии с точно указанными в команде значениями. В скобках после имени таблицы перечисляются столбцы, а после ключевого слова VALUES - их значения.

Например:> INSERT INTO Persons (last_name, bday) VALUES ('Иванов', '1934');

вставит в таблицу Persons строку, в которой значения фамилии (last_name) и даты рождения (bday) будут заданы соответственно как "Иванов" и "1934".[LOW_PRIORITY | DELAYED] [IGNORE]

[INTO] имя_таблицы [ (имя_столбца,.)] SELECT.

Эта форма команды INSERT вставляет строки, выбранные из другой таблицы или таблиц.

Например:> INSERT INTO Artifacts (author) SELECT id FROM Persons WHERE last_name='Иванов' AND bday='1934';

вставит в таблицу Artifacts в поле "автор" (author) значение идентификатора, выбранного из таблицы Persons по условию, что фамилия человека Иванов.[LOW_PRIORITY | DELAYED] [IGNORE] [INTO] имя_таблицы SET имя_столбца=выражение, имя_столбца=выражение,.

Например:> INSERT INTO Persons SET last_name='Петров', first_name='Иван';

Эта команда вставит в таблицу Persons в поле last_name значение "Петров", а в поле first_name - строку "Иван".

Форма INSERT. VALUES со списком из нескольких значений поддерживается в версии Mysql 3.22.5 и более поздних. Синтаксис выражения имя_столбца=выражение поддерживается в версии Mysql 3.22.10 и более поздних.

Действуют следующие соглашения.

Если не указан список столбцов для INSERT. VALUES или INSERT. SELECT, то величины для всех столбцов должны быть определены в списке VALUES () или в результате работы SELECT. Если порядок столбцов в таблице неизвестен, для его получения можно использовать DESCRIBE имя_таблицы.

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

Выражение expression может относиться к любому столбцу, который ранее был внесен в список значений. Например, можно указать следующее:> INSERT INTO имя_таблицы (col1,col2) VALUES (15,col1*2);

Но нельзя указать:> INSERT INTO имя_таблицы (col1,col2) VALUES (col2*2,15);

Параметры LOW_PRIORITY и DELAYED используются, когда с таблицей работает большое число пользователей. Они предписывают устанавливать приоритет данной операции перед операциями других пользователей. Если указывается ключевое слово LOW_PRIORITY, то выполнение данной команды INSERT будет задержано до тех пор, пока другие клиенты не завершат чтение этой таблицы. В этом случае клиент должен ожидать, пока данная команда вставки не будет завершена, что в случае интенсивного использования таблицы может потребовать значительного времени. В противоположность этому команда INSERT DELAYED позволяет данному клиенту продолжать операцию сразу же, независимо от других пользователей.

Если в команде INSERT указывается ключевое слово IGNORE, то все строки, имеющие дублирующиеся ключи PRIMARY или UNIQUE в этой таблице, будут проигнорированы и не внесены в таблицу. Если не указывать IGNORE, то данная операция вставки прекращается при обнаружении строки, имеющей дублирующеся значение существующего ключа.

Оператор UPDATE. Синтаксис:[LOW_PRIORITY] [IGNORE] имя_таблицы SET имя_столбца1=выражение1 [, имя_столбца2=выражение2,.] [WHERE where_definition] [LIMIT число]

Оператор UPDATE обновляет значения существующих столбцов таблицы в соответствии с введенными значениями. В выражении SET указывается, какие именно столбцы следует модифицировать и какие величины должны быть в них установлены. В выражении WHERE, если оно присутствует, задается, какие строки подлежат обновлению. В остальных случаях обновляются все строки. Если задано выражение ORDER BY, то строки будут обновляться в указанном в нем порядке.

Если указывается ключевое слово LOW_PRIORITY, то выполнение данной команды UPDATE задерживается до тех пор, пока другие клиенты не завершат чтение этой таблицы.

Если указывается ключевое слово IGNORE, то команда обновления не будет прервана, даже если возникнет ошибка дублирования ключей. Строки, из-за которых возникают конфликтные ситуации, обновлены не будут.

Если в выражении, которое задает новое значение столбца, используется имя этого поля, то команда UPDATE использует для этого столбца его текущее значение. Например, следующая команда устанавливает столбец death_date в значение, на единицу большее его текущей величины:> UPDATE Persons SET death_date=death_date+1;

В версии Mysql 3.23 можно использовать параметр LIMIT #, чтобы убедиться, что было изменено только заданное количество строк.

Например, такая операция заменит в первой строке таблицы экспонатов название title на строку "Ламповая ЭВМ":> UPDATE Artifacts SET title='Ламповая ЭВМ' Limit 1;

Оператор DELETE удаляет из таблицы имя_таблицы строки, удовлетворяющие заданным в where_definition условиям, и возвращает число удаленных записей.

Если оператор DELETE запускается без определения WHERE, то удаляются все строки.

Синтаксис:[LOW_PRIORITY] FROM имя_таблицы [WHERE where_definition] [LIMIT rows]

Например, следующая команда удалит из таблицы Persons все записи, у которых поле "год рождения" (bday) больше 2003:> DELETE FROM Persons WHERE bday>2003;

Удалить все записи в таблице можно еще и с помощью такой команды:> DELETE FROM Persons WHERE 1>0;

Но этот метод работает гораздо медленнее, чем использование той же команды без условия:> DELETE FROM Persons;

Специфическая для Mysql опция LIMIT для команды DELETE указывает серверу максимальное количество строк, которые следует удалить до возврата управления клиенту. Эта опция может использоваться для гарантии того, что данная команда DELETE не потребует слишком много времени для выполнения.

В дистрибутив PHP входит расширение, содержащее встроенные функции для работы с базой данных Mysql. В этой лекции мы познакомимся с некоторыми основными функциями для работы с Mysql, которые потребуются для решения задач построения web-интерфейсов с целью отображения и наполнения базы данных. Возникает вопрос, зачем строить такие интерфейсы? Для того чтобы вносить информацию в базу данных и просматривать ее содержимое могли люди, не знакомые с языком запросов SQL. При работе с web-интерфейсом для добавления информации в базу данных человеку нужно просто ввести эти данные в html-форму и отправить их на сервер, а наш скрипт сделает все остальное. А для просмотра содержимого таблиц достаточно просто щелкнуть по ссылке и зайти на нужную страницу [23].

Каждый экспонат в коллекции Artifacts описывается с помощью следующих характеристик:

·название (title);

·автор (author);

·описание (description);

·альтернативное название (alternative);

·изображение (photo).

Название и альтернативное название являются строками менее чем 255 символов длиной (т.е. имеют тип VARCHAR (255)), описание - текстовое поле (имеет тип TEXT), а в полях "автор" и "изображение" содержатся идентификаторы автора из коллекции Persons и изображения экспоната из коллекции Images соответственно [24].

2.5 Выбор технических средств


В качестве технических средств были выбраны средства со следующими характеристиками.

Сервер должен быть построен на основе Intel Celeron Dual Core не менее 2600 гц, оперативная память минимум 2Гб, рекомендуется 8 Гб, сетевая карта со скоростью 10/100/1000 Мбит/с.

Технические характеристики серверов БД:

Процессор - не менее двух процессоров Intel Xeon 3 ГГц;

Объем оперативной памяти - не менее 4 Гб;

Дисковая подсистема - не менее 72 Гб х 2 с RAID 1;

Устройство чтения компакт-дисков (DVD-ROM);

Сетевой адаптер - FastEthernet 100;

Адаптер Fibre Channel;

Видеосистема - разрешающая способность не ниже 1024x860 точек;

Координатно-указательное устройство - манипулятор типа "мышь";

Клавиатура - не менее 104 клавиш (русифицированная);

Монитор - диагональ не менее 15.

Локальные машины пользователей должны быть построены на основе Intel Celeron Dual Core не мене 1000 гц, с объемом оперативной памяти не менее 512 Мбайт, сетевая карта со скоростью 10/100/1000 Мбит/с.

Необходим доступ клиента к серверу по сети по протоколу TCP/IP.

Комплекс технических средств на разработку Web-приложения был подобран с учетом требований программных продуктов входящих в перечень разработчика Web-приложений. Оптимальные требования к техническим средствам разработчика приведены в таблице 2.3.


Таблица 2.3

Состав комплекса технических средств на разработку Web-приложения

Наименование оборудованияТехнические характеристикиКомпьютерHP Pro 3500MT (H4L65ES) Intel Celeron Dual Core, 2.6 ГГц, 4096 Мб RAM, 500 Гб HDDМодемМодем TP-Link TD-W8901NСетевой адаптерFastEthernet 100Видеосистемаразрешающая способность не ниже 1024x860 точекМонитордиагональ не менее 15

Выводы

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

3. Программная реализация Web-приложения


3.1 Описание интерфейса и дизайна


3.1.1 Главная страница

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

Во первых она не должна быть большой по размеру, не более 50KB. Во вторых дизайн должен быть удобным. Элементы навигации должны быть всегда на виду. Элементы навигации следует немного выделить. Главная страница будет выглядеть серой и невзрачной, если на ней не будет графики. Можно разместить на ней тематические изображения или анимацию. Злоупотреблять этим конечно не стоит из-за увеличения объема загружаемой через сеть информации в следствии чего понижается скорость загрузки страницы в браузер.

Для создания главной и последующих страниц использовался текстовый редактор Блокнот (Notepad) и частично редактор Web-страниц phpdesigner. Исходный код главной страницы помещен в Приложение А. На главной странице сверху расположен заголовок оформленный в виде гиперссылок. Сразу под ними располагается панель навигации по сайту, выполненная также в виде ссылок (Рисунок 3.1). При наведении на пункт меню курсор изменяет форму [25].


Рисунок 3.1 - Панель навигации


В нижней части страницы располагается блок навигации, в котором продукция располагается по категориям в алфавитном порядке (алфавитный каталог). Алфавитный каталог представлен на Рисунке 3.2.

Общий вид страницы представлен на Рисунке 3.3.


Рисунок 3.2 - Алфавитный каталог


Рисунок 3.3 - Главная страница сайта "artposters. kz"


3.1.2 Регистрация

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

Регистрация пользователей реализована с помощью запросов в базу данных MySQL посредством языка php. После того как пользователь внес информацию в поля формы регистрации, нажатием кнопки "Зарегистрироваться" данные из формы посылаются в файл register. php методом POST. В файле register. php данные сначала проверяются на соответствие правилам заполнения формы, на повторение логина, и после, если логин уникален, вносятся в базу данных в таблицу users, которая хранит информацию о пользователях.

Исходный код процесса регистрации помещен в приложение B.

После регистрации пользователи могут выполнять заказы на интересующую их продукцию [26].


3.1.3 Заказ продукции

Оформление заказа происходит на странице "Корзина" (Рисунок 3.6).

Разработка формы заказа продукции реализовывалась также с помощью запросов в базу данных MySQL посредством языка php. Исходный код формы заказа помещен в Приложение B. Чтобы осуществить заказ пособий следует кликнуть по кнопке "Отправить заявку", либо можно удалить выбранные постеры из списка кликнув по соответствующей кнопке [27].


3.2 Структура базы данных


Инфологическая модель баз данных

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

Сущность - любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром - Москва, Киев и т.д.

Атрибут - поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей (например, ЦВЕТ может быть определен для многих сущностей: СОБАКА, АВТОМОБИЛЬ, ДЫМ и т.д.). Атрибуты используются для определения того, какая информация должна быть собрана о сущности. Примерами атрибутов для сущности АВТОМОБИЛЬ являются ТИП, МАРКА, НОМЕРНОЙ ЗНАК, ЦВЕТ и т.д. Здесь также существует различие между типом и экземпляром. Тип атрибута ЦВЕТ имеет много экземпляров или значений: Красный, Синий, Банановый, Белая ночь и т.д., однако каждому экземпляру сущности присваивается только одно значение атрибута.

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

Ключ - минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся. Для сущности Расписание (п.1.2) ключом является атрибут Номер_рейса или набор: Пункт_отправления, Время_вылета и Пункт_назначения (при условии, что из пункта в пункт вылетает в каждый момент времени один самолет).

Связь - ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных - это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни или даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей. Наличие такого множества связей и определяет сложность инфологических моделей [28].

Инфологическая модель данного Web-приложения будет выглядеть следующим образом (Рисунок 3.7):


Рисунок 3.7 - Инфологическая модель базы данных


Выводы


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

4. Экономическая часть


Целью данного раздела дипломного проекта является расчет затрат на разработку программного обеспечения Web-приложения для компании TOO "ILLUSTRATE studio".

Общие понятия об экономической эффективности программного обеспечения Web-приложения

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

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

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

-затраты живого труда (отработанное время, фонд заработной платы);

-материальные затраты (затраты сырья, материалов, топлива, энергии);

-производственные фонды (основные производственные фонды, оборотные фонды, фонды обращения);

-капитальные вложения;

-инвестиции (затраты на расширенное воспроизводство основных фондов и прирост оборотных фондов);

-природные ресурсы (земля, запасы полезных ископаемых, леса, воды);

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

-время, как экономическая категория (рабочий период, время производства, сроки реализации инвестиций, инноваций, внедрения новой техники) [29].

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

Расчёт затрат на разработку программного обеспечения Web-приложения для предприятия ТОО "ILLUSTRATE studio"

Себестоимость создания программного обеспечения Web-приложения определяется по формуле:


Ссозд= Мз+Фзп+Зэл+Зи +Актс+НР, (4.1)


Где Ссозд - себестоимость системы;

Мз - материальные затраты;

Фзп - фонд заработной платы сотрудников;

Зэл - затраты на электроэнергию, отопление и освещение;

Актс - амортизационные отчисления на покупное оборудование и программное обеспечение;

НР - накладные расходы.

Все величины измеряются в тенге.

Общая сумма материальных затрат равна:


Мз = Зб + Зд + Зкт,(4.2)


Где Зб, Зд, Зкт - затраты на бумагу, диски, канцелярские товары.


Зб = Кб * Сб = 625 * 2 = 1250 тг,

Зд = Кд * Сд= 200 * 26 = 5200 тг,


Зкт = 5000 тг,

где Кб, Кд, - количество бумаги (пачка), дисков (шт.),

Сб, Сд - стоимость 1 пачки бумаги, 1 диска.


М3 = 1250 + 5200 + 5000 = 11450 тг.


Фонд заработной платы определяется по формуле:


Фзп= (ЗПр+ЗПс) *М*М, (4.3)

Где ЗПр - заработная плата разработчика в месяц, тенге;

ЗПс - отчисления в пенсионный фонд, тенге;

М - продолжительность разработки, мес.: принимаем М=2 мес.

Заработная плата разработчика определяется по формуле:


ЗПр=Тст*Ктс*Квр,(4.4)


Где

Тст - тарифная ставка 1-го разряда, тенге: для I квартала принимаем Тст= 6200 тенге;

Ктс - коэффициент тарифной сетки: для 10 разряда принимаем Ктс=1,91

Квр - коэффициент вредности: принимаем Квр=1,7

По формуле (4.4) рассчитаем величину заработной платы разработчика:


ЗПр=6200*1,91*1,7=20131 тенге.


Отчисления в пенсионный фонд определяются в размере 10 % от заработной платы:


ЗПс=2013 тенге.


По формуле (4.3) рассчитаем фонд заработной платы разработчикам:


Фзп= (20131+2013) *2*1=44288 тенге.


Затраты на электроэнергию, освещение, отопление определяются по следующей формуле:


Зэл=Сэл+Сос+Сот, (4.5)


Где Сэл - затраты на электроэнергию;

Сос - затраты на освещение;

Сот - затраты на отопление.

Затраты на электроэнергию рассчитываются по формуле:


Сэл=Мк*Тк*Тз*С,(4.6)


Где Мк - потребляемая мощность компьютера;

Тк - время работы компьютера;

Тз - количество рабочих дней;

С - стоимость 1 кВт/час, тенге = 16,24тг/ч.

По формуле (4.6) рассчитываем затраты на электроэнергию:


Сэл = 0,35*8*60*16,24 =2728,32 тг.


Затраты на освещение составляют:


Сос=Сл*Т*С*Тз, (4.7)


Где Сл - суммарная мощность светоустановки;

Т - количество часов освещения в день;

С - стоимость 1 кВт/час, тенге = 16,24 тг/ч;

Тз - количество рабочих дней.

По формуле (4.7) определяются затраты на освещение:


Сос=0,7*4*16,24*60=2728,32 тг.

Затраты на отопление составляют:


Сот=Цот*Пл*Мот, (4.8)


Где Цот - цена отопления за 1 кв. м.; Пл - площадь рабочего помещения; Мот - количество отопительных месяцев, совпадающих с проведение работ. Площадь рабочего помещения составляет 19,25. Тогда по формуле (4.8):


Сот=84,8*19,25*3= 4897,2 тг.


По формуле (4.5) затраты на электроэнергию, освещение, отопление составляют:


Зэл= 2728,32 + 2728,32 + 4897,2 = 10353,84 тг.


Затраты на доступ к сети Internet определяется по формуле:


Зи=Ци*М, (4.9)


Где Ци - абонентская плата, тг/мес.

По формуле (4.9) рассчитаем затраты на доступ к сети Internet:


Зи=4500*2=9000 тг.


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


Таблица 4.1

Состав комплекса технических средств на разработку сайта

Наименование оборудованияТехнические характеристикиЦена, тенге123КомпьютерHP Pro 3500MT (H4L65ES) Intel Celeron Dual Core, 2.6 ГГц, 4096 Мб RAM, 500 Гб HDD69 900МодемМодем TP-Link TD-W8901N5670

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

ктс= (Цк+Цм) *Ка*M/12, (4.10)


Где

Цк - цена компьютера, тенге;

Цм - цена модема, тенге;

Ка - годовой коэффициент амортизации: принимаем Ка=0,2;

- количество месяцев в году, мес.

По формуле (4.10) рассчитаем затраты на комплекс технических средств:

ктс= (69 900+5670) *0,2*2/12=12595 тенге.


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

= Сд + Сх+ П3, (4.11)


Где Сд - стоимость доменного имени З000тг, данные с #"justify">Сх - стоимость хостинга 2000 тг, данные с #"justify">П3 - затраты на питания.


П3= Фмаш * Соб, (4.12)


Где Фмаш - время работы,

Соб - стоимость обеда была взята равной 300 тг,


П3= 15 * 300= 4500, тг


В итоге получим:

= 3000+2000+4500 = 9 500 тг.


При программного обеспечения Web-приложения предполагается, что у разработчика имеется в наличии комплекс технических средств и необходимое программное обеспечение [30].

По формуле (4.1) себестоимость создания системы составляет:


Ссозд=11450+44288+10353,84+9000+9 500 = 84591,84 тенге.


Договорная стоимость на продажу программного обеспечения Web-приложения определяется по формуле:


Цд=Ссозд* (1+Нр/100), (4.13)


Где Ссозд - стоимость создания системы; Нр - нормативная рентабельность, проценты. Основываясь на величине полезности работы (ее результативности) для данного проекта нормативная рентабельность составляет 115%. Тогда по формуле (4.13):


Цд= 84591,84* (1+115/100) = 98126,5344 тг.


Чистая прибыль определяется по формуле:


Пч=Цд- (НДС+Нп+Нс), (4.14)


Где

Цд - договорная стоимость на продажу системы: НДС - налог на добавленную стоимость;

Нп - налог на прибыль;

Нс - социальный налог.

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

НДС составляет 12% от стоимости системы.


НДС=98126,5344 *0,12=11775,184 тг.


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


Цд=98126,5344 +11775,184 =109901,718 тг.


Налог на прибыль составляет 30% от стоимости продажи:


Нп=109901,718 *0,3=32970,513 тг.


Социальный налог составляет 11% заработной платы:


Нс=44288*0,11=4871,68 тг.


По формуле чистая прибыль от продажи данного проекта равна:


Пч=109901,718 - (11775,184 +32970,513 +4871,68) = 60284,341тг.


Таким образом, чистая прибыль от разарботанного программного обеспечения Web-приложения составляет 60284,341тг.

Срок окупаемости для поставщика считается по формуле:


Ток=Ссозд/Пч=84591,84 /60284,341»1,4 года.


Согласно приведенным расчетам, внедрение данного проекта окупится примерно через полтора года, что делает его создание экономически выгодным и эффективным [31].


Выводы


В данном разделе дипломного проекта был произведен расчет затрат на разработку программного обеспечения Web-приложения для компании TOO "ILLUSTRATE studio".

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

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

5. Охрана труда


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

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

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

Трудовой кодекс Республики Казахстан утвержденный 15 мая 2007 года регулирует трудовые отношения на территории Республики Казахстан: согласно статье 77 нормальная продолжительность рабочего времени, в течение, которого работник в соответствии с актами работодателя и условиями индивидуального трудового договора выполняет трудовые обязанности, не должна превышать 40 часов в неделю.5 раздел Трудового Кодекса РК полностью посвящен безопасности и охране труда [32].

Согласно Статье 306, государственная политика в области безопасности и охраны труда направлена на:

) разработку и принятие нормативных правовых актов Республики Казахстан в области безопасности и охраны труда;

) разработку государственных, отраслевых (секторальных) и региональных программ в области безопасности и охраны труда;

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

) осуществление мониторинга в области безопасности и охраны труда;

) проведение научных исследований по проблемам безопасности и охраны труда;

) установление единого порядка учета несчастных случаев на производстве и профессиональных заболеваний;

) государственный надзор и контроль за соблюдением требований законодательства Республики Казахстан в области безопасности и охраны труда;

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

) защиту законных интересов работников, пострадавших от несчастных случаев на производстве и профессиональных заболеваний, а также членов их семей;

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

) распространение передового отечественного и зарубежного опыта работы по улучшению условий и охраны труда;

) подготовку и повышение квалификации специалистов по безопасности и охране труда;

) организацию государственной статистической отчетности о производственном травматизме, профессиональной заболеваемости;

) обеспечение функционирования единой информационной системы в области безопасности и охраны труда;

) международное сотрудничество в области безопасности и охраны труда.

Согласно, Статье 307, государственное управление, контроль и надзор в области безопасности и охраны труда: государственное управление, контроль и надзор в области безопасности и охраны труда осуществляются Правительством Республики Казахстан, уполномоченным государственным органом по труду и иными уполномоченными государственными органами в соответствии с их компетенцией.

Статья 314. Права работника на безопасность и охрану труда

Работник имеет право на:

) рабочее место, оборудованное в соответствии с требованиями безопасности и охраны труда;

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

) обращение в уполномоченный государственный орган по труду и его территориальные подразделения о проведении обследования условий и охраны труда на его рабочем месте;

) участие лично или через своего представителя в проверке и рассмотрении вопросов, связанных с улучшением условий, безопасности и охраны труда;

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

) образование и профессиональную подготовку, необходимые для безопасного исполнения трудовых обязанностей, в порядке, установленном законодательством Республики Казахстан;

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

) сохранение средней заработной платы на время приостановки работы организации из-за несоответствия требованиям по безопасности и охране труда;

) обжалование неправомерных действий работодателя в области безопасности и охраны труда [33].


5.1 Анализ опасных и вредных факторов


Помещение офиса находится на втором этаже двухэтажного жилого здания. Общие характеристики рабочего помещения: длина 5,5 м, ширина 3,5 м, высота 2,5 м, (Соответствует п.3.4 СанПиН РК). Расстояние от компьютерного стола до стены: нормированное - 0,25-0,5; фактическое - 0,25 (соответствует п.5.1.2 СанПиН РК).

Расстояние от рабочего стола до стены с оконным проемом: нормированное - 0,25-0,5; фактическое - 0,25 (Соответствует п.5.1.2 СанПиН

В помещении находятся два оконных проема размером 1,5*2,0 м, для исключения попадания прямых солнечных лучей и регулировки уровней освещенности на рабочих местах используются тканевые шторы (занавес), что соответствует пункту 5.1.1 раздела 5 СанПин N 1.01.004.01 РК. В помещении присутствует естественное и искусственное освещение.

Рабочее помещение оснащено отдельным контуром заземления. В помещении имеется дверной проём высотой 2 метра и шириной 0,8 метров. Дверь выполнена из ДСП (высота 2 метра, ширина 0,8 метров), открывается наружу. В помещении имеется офисная мебель, изготовленная из ДСП: 2 компьютерных стола, шкаф для книг и документов. На двух рабочих столах установлены компьютеры. Помещение оборудовано системой отопления: отопление централизованное, металлические трубы, радиаторы чугунные (8 секций), покрашены в белый цвет. Пол бетонный, покрыт линолеумом (цвет коричневый), стены окрашены в белый цвет, потолок беленый белой эмульсией. В помещении проводится влажная уборка два раза в неделю. Все параметры помещения соответствуют нормам, регламентированным в СанПиН N 1.01.004.01 РК.


Рисунок 5.1 - Схема рабочего помещения


Основные объекты на схеме:

- Дверь (высота 2 м, ширина 0,8 м);

- Окно (размеры 1,5х2,0 м);

- Стол (длина 2 м, ширина 0,9 м, высота 0,8м);

- Стул;

- Шкаф для книг и документов (первый: длина 1 м, ширина 0,5 м, высота 1,8 м, второй: длина 2 м, ширина 0,4 м, высота 2м);

- силовые розетки;

Освещение в рабочем помещении комбинированное (естественное освещение регулируется занавесками). Искусственное освещение в рабочем помещении: лампы накаливания - 8 шт, расположены в виде светильника над рабочим местом. Всего 4 светильника. Параметры лампы: мощность 100 Вт, внутри нить накаливания. Достаточный уровень освещения.

Значительным физическим фактором является микроклимат рабочей зоны, особенно температура и влажность воздуха. Человек постоянно находится в процессе теплового взаимодействия с окружающей средой. Исследования показывают, что высокая температура в сочетании с высокой влажностью воздуха оказывает большое влияние на работоспособность оператора. Увеличивается время реакции оператора ЭВМ, нарушается координация движений, резко увеличивается число ошибочных действий. Высокая температура на рабочем месте оператора отрицательно влияет на психологические функции: понижается внимание, уменьшается объем оперативной памяти, снижается [34].

Температура воздуха в данном помещении 22°С, Относительная влажность воздуха 48%, скорость движения воздуха 0,1 м/c, при категории работы 1а в холодный период года. Температура воздуха 24°С, Относительная влажность воздуха 50%, скорость движения воздуха 0,1 м/c, при категории работы 1а в тёплый период года (Соответствует согласно приложению 1 СанПиН РК).

Шум в рабочем помещении создают: осветительные лампы накаливания, кулера в системных блоках, разговоры между работниками, телефонные разговоры (уровень шума на рабочем месте не превышает допустимых параметров согласно Приложения 7 СанПиН РК).

В рабочих помещениях почти вся компьютерная техника и оргтехника создаёт вибрацию, которая ощущается при прикосновении к работающей технике, и почти не ощущается на рабочем месте, допустимые значения виброскорости 20 мс, 72 Дб (Не превышает санитарных норм вибрации согласно Приложения 8 СанПиН РК).

В помещении отдела web-разроботки отсутствует аптечка, что противоречит пункту 5.1.8 раздела 5 СанПин N 1.01.004.01 РК.

В помещении функционирует естественная вентиляция, представленная вентиляционным отверстием размером 30*30 см. Также осуществляется проветривание помещения ежедневно по 3-4 раза в день приблизительно в течение 10-15 минут.

В отделе находится два оконных проема. На окнах присутствуют шторы и жалюзи.

Согласно СанПиН №1.01.004.01 высота рабочей поверхности стола должна регулироваться в пределах 68-80 см; при отсутствии такой возможности высота рабочей поверхности сюда должна составлять не менее 72, 5 см.

Рабочий стол должен иметь пространство для ног высотой не менее 60 см, шириной - не менее 50 см, глубиной на уровне колен - не менее 45 см и па уровне вытянутых ног - не менее 65 см.

Рабочее место рекомендуется оборудовать подставкой для ног, имеющей ширину не менее 30 см, глубину не менее 40 см, регулировку по высоте в пределах 15 см и по углу наклона опорной поверхности подставки до 20 градусов. Поверхность подставки должна быть рифленой и иметь по переднему краю бортик высотой 1 см. Рабочее место рекомендуется оснастить легко перемещаемым пюпитром для документов. Клавиатуру следует располагать на специальной, желательно регулируемой по высоте рабочей поверхности, отделенной от основной столешницы, пли на поверхности стола па расстоянии 10-30 см от края, обращенного к пользователю. Расстояние клавиатуры от монитора ВДТ должно быть не менее 30 см. В данном отделе отсутствуют подставки для ног. В связи с этим рекомендую оснастить рабочие места регулируемыми подставками [35].


5.2 Мероприятия по снижению опасных и вредных факторов


Необходимо поддерживать правильный режим энергопотребления при работе с электроприборами [Статья 17 Правила устройства электроустановок Республики Казахстан - Потребители электрической мощности, электрической и тепловой энергии обязаны поддерживать надлежащее техническое состояние токоприемников и приборов коммерческого учета, выполнять требования к техническому состоянию, которые определяются нормативными правовыми актами]. Необходимо приобрести аптечку скорой помощи. Так же, рекомендуется разместить кондиционер для лучшей вентиляции помещения [36].


5.3 Расчетная часть


В помещении присутствует естественное и искусственное освещение. Искусственное освещение представлено светильником, вмонтированной в потолок, состоящей из четырех ламп накаливания мощностью 100 Вт.

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

Расчет освещенности производится в помещении площадью 16 м2, длиной 4 м, шириной 4 м, высота помещения составляет 2,5 м.

Определим нормированную минимальную освещенность Е, данный параметр определяется по таблице. Работу с программами можно отнести к разряду точных работ, следовательно, минимальная освещенность будет Е = 400 Лк

Далее определим высоту подвеса светильника Hc над рабочей (условно рабочей) поверхностью:


, (5.1)


Где Н - высота помещения; - высота рабочей поверхности над полом, 0,8 м; - расстояние светильника от потолка, 0,1 м.

Подставим все значения в формулу, получим:

c=2,5-0,8-0,1=1,6 м.


Далее определяется индекс помещения:


,(5.2)


Где S=AB - площадь помещения , 19,25 м2,А - длина помещения, 5,5 м,

В - ширина помещения, 3,5 м.

Подставив все значения в формулу, получим:


=1,3368.


Далее определим коэффициент использования светового потока согласно табличным значениям по индексу помещения . Значение коэффициента зависит от типа светильника и коэффициентов отражения потолка и стен . При значении индекса помещений 1,3368 коэффициент использования светового потока равен 0,5.

Табличные данные коэффициента использования светового потока соответствуют значениям =50% и =30%.

В данном помещении =60% и =55%, таким образом значение коэффициента нужно умножить: при лампах ДРЛ (ДРИ) на 1,15, при лампах накаливания на 1,2 и при люминесцентных лампах на 1,25. В данном случае умножаем табличное значение коэффициента на 1,2, так как в помещении используются лампы накаливания.

Таким образом коэффициент использования светового потока будет равен 1,20,5=0,6.

Далее определим потребный световой поток одного светильника:


, (5.3)


Где К - коэффициент запаса, принимается равным: 1,5 - при загрязненности воздуха (пылью, дымом, копотью) менее 5 кг/; 1,6 - от 5 до 10 мг/; 1.8 - более 10 мг/ в случае соответствия газораспределяющими лампами, при освещении лампами накаливания равен 1,3. Данном случае коэффициент запаса примет значение 1,5, так как загрязнение воздуха менее 5 кг/,- коэффициент неравномерности освещения, принимается равным 1,2,N - количество ламп в светильнике.

Подставив все значения в формулу, получим:


=2887,5 лм.


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

Так как в данном помещении используется лампы накаливания, то величина =2887,5/8= 360,9375 лм.

По таблице характеристики ламп была подобрана лампа накаливания со световым потоком 1360 лм.

По световому потоку F принятой лампы определяется действительная освещенность помещения от устанавливаемых светильников по формуле:


, (5.4)


Подставив все найденные выше величины в данную формулу, получим:


= 695,6 Лк


Нормированная минимальная освещенность для ламп накаливания равна 400 Лк, а полученная действительная освещенность помещения составила 695,6 Лк, из чего можно сделать вывод, что в данном помещении достаточный уровень освещения.


5.3.1 Расчет уровня шума

В помещении имеется 1 компьютер, который имеет жесткий диск и 2 вентилятора, охлаждающих компьютер (кулер). Первый - охлаждает блок питания, второй - процессор. Каждый из них создаёт шум.

Суммарный уровень шума, возникающий от нескольких источников, рассчитывается по формуле:


(5.5)


Для данного помещения:


,(5.6)


Где nжд, nк, nч, nприн - количество, соответственно, жестких дисков, кулеров, людей, принтеров;- уровень интенсивности звука.

Количество жестких дисков равно числу компьютеров, т.е. nжд = 1.

Количество кулеров nк = 2.

Количество разговаривающих людей nч = 2, предполагая, что в данном помещении могут одновременно разговаривать работающий и посетитель.

Уровень интенсивности звука, в среднем, у жестких дисков Lжд = 30 дбА, у кулеров Lк = 35 дбА, у негромко разговаривающих людей Lч = 40дбА, у лазерного принтера Lприн = 54 дбА. В данном помещении отсутствует принтер.

Таким образом подставляя значения в формулу 1.2 получим:


= 28,32 дбА.


Согласно пунку 4.3.2 главы 4 СанПин N 1.01.004.01 РК в помещениях, где работа на ВДТ и ПЭВМ является основной (диспетчерские, операторские, расчетные, посты управления, залы вычислительной техники, офисы и др.) уровень шума на рабочем месте не должен превышать 50 дБА. В результате произведённых расчетов получается, что суммарный шум рабочего помещения не превышает нормативного значения СанПиН № 1.01.004.01 РК.

Также перечисленные выше электрические приборы являются источниками электромагнитного излучения. Основным источником электростатического поля в помещении являются монитор, электропроводка, розетки.

5.4 Меры пожарной безопасности


Основной задачей пожарной безопасности является проведение комплекса мероприятий, обеспечивающих пожарную безопасность, это:

устранение причин, способствующих возникновению пожара;

создание условий для своевременной эвакуации людей и материальных ценностей при пожаре;

выполнение мероприятий, ограничивающих распространение пожара в случае его возникновения;

осуществление мероприятий обеспечивающих успешное тушение пожаров.

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

Методы противодействия пожару делятся на:

уменьшающие вероятность возникновения пожара;

защиту и спасение людей от огня.

Рабочее помещение с точки зрения производства предприятия имеет четвёртую категорию (D) пожарной опасности (соответствует СНиП РК 2.02-01-2001 "Пожарная ?безопасность зданий и сооружений").

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

В качестве первичных средств пожаротушения применяют углекислотные огнетушители ручного действия марки ОУ-8, расположенные в здании. Все огнетушители подвергаются периодической проверке и перезарядке.

Пожарная сигнализация и гидранты отсутствуют. Автоматическая система пожаротушения отсутствует. Также нет автоматической системы дымоудаления.

Согласно статье 15 закона РК "О пожарной безопасности", "Разработка и реализация мер пожарной безопасности для предприятий, зданий, сооружений и других объектов, в том числе при их проектировании" должны в обязательном порядке предусматривать решения, обеспечивающие безопасную эвакуацию людей при пожарах.

В офисе имеется эвакуации при пожаре, в котором указаны пути эвакуации и эвакуационные выходы [38].


Рисунок 5.2 - План эвакуации из офисного помещения при пожаре


Выводы


В данной главе был произведен сравнительный анализ офисного помещения с нормами СанПин N 1.01.004.01 РК. При осмотре данного помещения не было обнаружено аптечки скорой помощи, что противоречит пункту 5.1.8 Необходимо приобрести аптечку скорой помощи.

6. Промышленная экология


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

Источниками электромагнитных полей могут быть:

) Электромагнитные поля естественных источников. Все естественные источники ЭМП разделяют на две категории: земные и внеземные. К первым относят электрические и магнитные квазистатические поля Земли, атмосферные разряды, а также излучения живых организмов, ко вторым - излучения звезд, планет и галактик.

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

) Электромагнитные поля искусственных источников Любое техническое устройство, использующее либо вырабатывающее электрическую энергию, является источником ЭМП, излучаемых во внешнее пространство. К их источникам относятся:

.1) Низкочастотные ЭМП. Поверхности с электростатическим зарядом Источниками электростатических полей в бытовых условиях могут быть любые поверхности и предметы, легко электризуемые при трении: ковры, линолеумы, лакированные покрытия, одежда из синтетических тканей, обувь.

.2) Воздушные линии электропередачи (50 Гц). Интенсивности ЭМП от данного источника во многом зависят от напряжения линии (110, 220, 330 кВ и выше.

.3) Высокочастотные и сверхвысокочастотные ЭМП СВЧ-печи. СВЧ-печи работают на частоте 2450 МГц. Колебательная мощность магнетронных генераторов подобных устройств зависит от емкости печи и может достигать до 800 Вт.

) Радиопередающие устройства. Радиопередающие устройства, используемые для радиолокации, радионавигации и связи, работают в очень широком частотном диапазоне: от 9 кГц до сотен гигагерц. Мощности, излучаемые передающими антеннами, также весьма разнообразны.

) Мониторы с электронно-лучевыми трубками персональных ЭВМ. Электронно-лучевые трубки (ЭЛТ) являются источниками электромагнитных излучений весьма широкого диапазона частот. Основными источниками электромагнитных полей в НЧ - и ВЧ-диапазонах являются: экран монитора (электростатические поля); питающие провода и системный блок (частота 50 Гц); система строчной развертки (диапазон частот 15.130 кГц); система кадровой развертки (диапазон частот 50.150 Гц).

Виды воздействия электромагнитных полей:

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

) Тепловые эффекты. Наиболее хорошо исследованным эффектом воздействия ЭМП на биологические ткани является процесс преобразования падающей на ткани энергии в кинетическую энергию молекул, что приводит к нагреву среды (проявляется в диапазонах ВЧ и СВЧ).

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

) Нетепловые (информационные) эффекты. Последствия данных эффектов весьма разноречивы [39].

Нормативной базой дозы излучения в Казахстане являются санитарные правила и нормы. Среди зарубежных национальных организаций, работающих в области нормирования ЭМП, следует назвать:

Институт американских национальных стандартов (ANSI);

Британский национальный центр радиологической защиты (NRPB);

Немецкий электротехнический союз (VDE).

Среди международных организаций, разрабатывающих нормы и рекомендации в этой области, надлежит отметить:

Всемирную организацию здравоохранения (ВОЗ);

Международную электротехническую комиссию (МЭК);

Международный комитет по защите от неионизирующей радиации (ICNIRP). В соответствии с СанПин РК рекомендуются следующие допустимые значения:


Таблица 6.1. Допустимые значения уровней неионизирующих электромагнитных излучений


Основным нормативным документом являются "Санитарные нормы электромагнитных полей, создаваемых бытовыми машинами, приборами и материалами № СН 3.01.003-96".

Мероприятия по защите биологических объектов от ЭМП подразделяют на организационные; инженерно-технические; медицинско-профилактические и лечебные.

К основным организационным мероприятиям относят:

нормирование параметров электромагнитных воздействий;

периодический контроль облучаемости;

рациональное размещение источников и приемников излучения (территориальный разнос);

ограничение времени пребывание в ЭМП;

предупредительные надписи и знаки.

К основным инженерно-техническим мероприятиям относятся уменьшение мощности излучения непосредственно в источнике и электромагнитное экранирование.

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

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

В соответствии с СанПин РК обязательными считается следующее нормирование уровня шума:


Таблица 6.2

Уровни звука, эквивалентные уровни звука и уровни звукового давления в октавных полосах частот

Уровни звукового давление, дБУровни звука, дБаСреднегеометрические частоты октавных полос, Гц31, 56312 5250500100020004 0008000867161544 945424038509379706358555250496096837468636057555465103918377737068666,475

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

выявление источников шума антропогенного происхождения и снижение уровня шумоизлучения промышленных объектов, транспортных средств и различного типа устройств;

правильное планирование застройки территорий, предназначенных для размещения предприятий и жилых домов, широкое использование при этом защитных озеленительных посадок (деревья, трава и пр.);

использование при конструировании зданий и отдельных помещений специальных звукопоглотителей и звукопоглощающих конструкций;

демпфирование звуковых вибраций;

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

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

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

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

В помещениях, где работа на ВДТ и ПЭВМ является основной (диспетчерские, операторские, расчетные, посты управления, залы вычислительной техники, офисы и др.) 50 дБА. При выполнении инженерно-технических работ, при осуществлении лабораторного, аналитического и измерительного контроля уровень шума в помещений с ВДТ и ПЭВМ не должен превышать 60 дБА. В помещениях операторов ЭВМ (без дисплеев) уровень шума не должен превышать 65 дБА. На рабочих местах в помещениях, где размещены шумные агрегаты вычислительных машин (АЦПУ и т.п.), уровень шума не должен превышать 75 дБА. Допустимые уровни шума и вибрации регламентируются "Санитарными правилами и нормами" (СанПин № 1.01.004.01) и "Гигиеническими нормами допустимых уровней звукового давления и уровней звука на рабочих местах". В соответствии с этими правилами уровень шума на рабочем месте, при длительном воздействии, не должен превышать 50 дБ.

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

ЭВМ являются источниками таких излучений как:

-мягкого рентгеновского;

-ультрафиолетового 200-400 нм;

-видимого 400-700 нм,

-ближнего инфракрасного 700-1050 нм;

-радиочастотного З кГц-ЗО МГц;

-электростатических полей;

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

Компьютерные отходы создают серьезную экологическую проблему в первую очередь из-за его токсичности. Источниками могут быть:

-электронно-лучевые трубки (ЭЛТ), в большинстве компьютерных мониторов и телевизионных экранов, которые содержат от 4 до 8 фунтов свинца, в основном встроенные в стекло. Выбросы мониторов и телевизоров считаются крупнейшими источниками свинца в свалках. ЭЛТ считаются опасными источниками отходов в рамках федерального и государственного права и должны рассматриваться как таковое.

-центральный процессор ПК (CPU) - модуль, содержащий чип и диск - как правило, содержит определенное количество токсичных тяжелых металлов, таких как ртуть (в переключателях), свинец (в припой на печатных платах) и кадмий (в аккумуляторных батареях). [30]

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

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

Сейчас в развитых странах проблема утилизации персональных компьютеров и электронной техники стоит очень остро: куда девать тонны компьютерного железа, устаревшего еще несколько лет назад?

Срок службы компьютерной техники не так уж велик: как правило, он не превышает 4 - 5 лет. Учитывая, сколь велико количество эксплуатируемых в мире компьютеров и коммуникационных систем в ближайшее время утилизация отработавшей свое электронной техники станет серьезной экологической проблемой [40].

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

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

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

Рассчитаем уровень шума и интенсивность электромагнитного излучения в помещении отдела, схема которого изображена на рисунке 6.1.


Рисунок 6.1 - Схема помещения


Условные обозначения предметов, изображенных на рисунке 6.1:

- стол;

- системный блок;

- монитор жидкокристаллический;

- клавиатура;

- кресло офисное;

- шкафы для документов.

Источником шума в кабинете оператора является персональный компьютер. Согласно технической документации, данные компьютеры создают шум на уровне 28 дБ.

Шум в РТ замкнутого объема определяется свойствами пространства и помещения. Шум в замкнутом объёме определяется по формуле 6.1:


(6.1)


Где - акустическая мощность источника звука; - пространственный угол излучения шума ();

- коэффициент, учитывающий размеры источника шума (рисунок 6.2);

- коэффициент, учитывающий характер звукового поля в

помещении (рисунок 6.3);

Ф - фактор направленности источника звука (для ненаправленных

источников Ф=1), определяемый экспериментально;- расстояние от источника шума до РТ, м;

Впом - акустическая постоянная помещения.

В кабинете 1 источник шума, он создает

дБ

Расстояние r от РТ до компьютеров составляет 3 м. Максимальный линейный размер компьютера - длина его корпуса - 0,65м. По графику зависимости определяем коэффициент, учитывающий размеры источника шума:


Рисунок 6.2 - Зависимость коэффициентаот отношения расстояния R к максимальному линейному размеру источника lmax


Акустическая постоянная определяется по формуле 6.2: [13]


, м2;(6.2)


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

Средний коэффициент звукопоглощения в помещении определяется по формуле 6.3:


(6.3)


Где - суммарная площадь поверхностей, ограждающих помещение;

- коэффициент звукопоглощения i-й ограждающей поверхности помещения площадью Si, м2.

Для расчета необходимо определить, поверхности ограничивающие помещение. В данном случае это: стены (), пол (), потолок (), передние и боковые поверхности стола (), боковая и передняя поверхности двух шкафов для документов (), окна (). Длина помещения - 4м (5,5), ширина - 3м (3,5), высота - 2,6м (2,5). Посчитав, получаем: =45м2, =19,25м2, =19,25м2, =4,8м2, =5,8м2, =2м2.

Примем =0,1, =0,02, =0,05, =0,1, =0,13, =0,01.

Подставим значения в формулу 6.3 и вычислим коэффициент звукопоглощения:



Подставим значения в формулу 6.2 и рассчитаем акустическую постоянную помещения:


м2


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


Рисунок 6.3 - Зависимость коэффициента от отношения акустической постоянной помещения Впом к его площади Sпом


По формуле 6.1 найдем шум в замкнутом объёме (рисунок 6.1):


дБ


Уровень шума в помещении отдела кадров, согласно таблице 6.4, основанной на СПиН от18 августа 2004 года (приказ №631), не превышает санитарных норм установленных в РК. Поэтому рекомендаций по изменению уровня шума не предлагаю. Рекомендую лишь в соответствии с санитарными нормами установить кондиционер и повторно пересчитать ПДУ шума.

ЭМП характеризуется интенсивностью излучения Ws (поверхностная плотность потока энергии или вектор Умова-Пойнтинга), выражаемой в Вт/м2 (или Вт/см2).

Интенсивность излучения одного компьютера - 0,017 Вт/см2.

Уровень излучения ЭМП в помещении отдела соответствует допустимым нормам, поэтому рекомендации отсутствуют.

В данном разделе рассмотрены источники загрязнения окружающей среды, способы предотвращения её загрязнения, влияние ЭВМ и другого оборудования на окружающую среду, их опасные отходы, а также утилизация ЭВМ, которая предотвращает загрязнение окружающей среды этими отходами. В конце раздела на примере конкретного помещения произведены расчеты уровней шума и излучения ЭМП [41].

Заключение


Дипломный проект посвящен разработке программного обеспечения Web-приложения информационных систем "artposters. kz" для отдела "Архитектуры и Дизайна" компании ТОО "ILLUSTRATE studio".

В первой главе была проанализирована деятельность отдела "Архитектуры и Дизайна" организации и определены требования к разрабатываемому Web-приложению.

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

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

В четвертой главе рассмотрены вопросы экономики, представлены расчеты затрат на разработку Web-приложения, инсталляции программного и аппаратного обеспечения Web-приложения, затраты на её внедрение.

В пятой главе рассмотрены вопросы охраны труда. Рассмотрены вопросы, связанные с оснащением рабочего места, вопросам освещенности рабочего места, нормативам, связанным с допустимой величиной шума. Произведен расчет и анализ всех данных параметров.

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

Целью дипломного проекта являлась разработка программного обеспечение Web-приложений информационных систем "artposters. kz", которое будет обеспечивать продажу декоративных постеров, а также обеспечивать распространение рекламы и информации о деятельности компании TOO "ILLUSTRATE studio".

В данном дипломном проекта была реализована задача по созданию Web-приложения "artposters. kz", которое имеет следующие возможности:

Поиск постеров по названию;

Поиск постеров по направлению;

Вывод прайс-листа на постеры;

Регистрация пользователей на сайте;

Оформление заказов на постеры.

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

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

Созданное Web-приложение "artposters. kz", являющаяся по сути интернет-магазином, обладает рядом преимуществ по сравнению с обычными магазинами, это:

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

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

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

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

Анонимность. Некоторые товары лучше покупать без посторонних глаз. Интернет - магазин гарантирует, что о вашей покупке никто не узнает.

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

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

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

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

Данный дипломный проект прошел апробацию. Были проведены испытания данного Web-приложения в результате которых было принято решение о введении его в действие. Данное Web-приложение "artposters. kz" было введено в действие и ныне функционирует в качестве интернет-магазина Заказчика, которое реализует маркетинговую деятельность по продажам декоративных постеров.

Исходя из экономических рассчетов чистая прибыль от разарботанного программного обеспечения Web-приложения составит 60284,341тг.

Согласно приведенным расчетам, внедрение данного проекта окупится примерно через полтора года, что делает его создание экономически выгодным и эффективным.

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


1. Пауэлл Т., Web-дизайн. - 2-е изд. СПб.: БХВ-Петербург, 2004. - 1072с.

. Левин А.Ш. Методика создания Web-приложения.8-ое изд. - СПб.: Питер, 2004 г.,655 с

. Леонтьев В.П., Большая энциклопедия и Интернета. - М.: Олма Пресс, 2005г.

.С. Круг, "Веб-дизайн", Москва, 2001г.

. Якоб Н.В., Веб-дизайн. СПб.: Москва, 2005 - 102с.

. Уильямс Р.Д., DHTML и CSS для Internet. СПб.: Нью-Йорк, 2000г. - 400c.

. Дэйв Ши. Молли Е. Хольщшпаг., Философия CSS-дизайна. СПб.: Москва, 2007 - 101с.

. Келли Л.М., Java Script. Наглядный курс создания динамических Web-страниц. - М.: Питер, 2008.

. Скотт Х.М., Администрирование веб-сервера Apache и руководство по електронной коммерции "БХВ-Петербург", 2005г., 399c.

.А. Вайк, Д. Уокер, Р. Кокс, "Справочник PHP 4" от DiaSoft, 2006г.

.Я. Нильсен, "Веб-дизайн", Москва, 2005г.

. Матросов А., Сергеев А., Чаунин М., HTML 4.0 в подлиннике, СПб.: БХВ-Петербург, 2004. - 672с.

.Д. Кирсанов, "Веб-дизайн", Санкт-Петербург, 2004г.

. Дмитриева М.В., Java Script: Самоучитель., "БХВ-Петербург", 2001г., 499c.

. Белова И., Охрана окружающей среды. Учебник для технических ВУЗов, 1991 г.

. Сагимбаев Г.К. Экология и экономика. - Алматы: Каржы Каражат, 1997 г., 144 с.

. Кимель Л.Р. Защита от ионизирующих излучений. Справочник, 2002. - 312 с.

. Трудовой кодекс РК от 15.05.2007г.

19. Санитарные правила и нормы СанПиН N 1.01.004.01

. Николаев А.П. "Шумовое загрязнение", Киев, 2006г.

. Калыгин В.Г. "Промышленная экология". Учебное пособие для студентов, Москва 2008г.

22. ГОСТ 12.1.019-79. ССБТ. Электробезопасность. Общие требования.

. ГОСТ 25861-83. Машины вычислительные и системы обработки данных. Требования электрической и механической безопасности и методы испытаний.

. ГОСТ 12.1.033-81. ССБТ. Пожарная безопасность объектов с электрическими сетями.

. ГОСТ 12.1.004-85. ССБТ. Пожарная безопасность. Общие требования.

. СНиП 2.01.02-85. Противопожарные нормы и правила.

. ГОСТ 12.1.003-83. ССБТ. Шум. Общие требования безопасности.

. ГОСТ 12.1.005-88. ССБТ. Воздух рабочей зоны. Общие санитарно-гигиенические требования.

. Абрамова Ж.И., Оксенгендлер Г.И. Человек и противоокислительные вещества. Л.: Наука, 1985. - 230 с.

. Бааде Ф. Соревнование к 2000 году. М., 1962.

. Байнхауэр X., Шмаке Э. Мир к 2000 году. М.: "Прогресс", 1978.

. Интернет источник: #"justify">33. Попов И.Г., Мамонов С.Г. Информационные системы. М.: Инфра, 2007.

. Абросимов А.Г. Бородинова М.А. Теория экономических информационных систем. Учебное пособие - Самара. Изд-во Самарск. гос. экон. акад., 2007.

. Информационные системы. Учебник /Петров В.Н. - СПб.: Питер, 2008.

. Информационное обеспечение систем управления. Учебное пособие/Голенищев Э.П., Клименко И.В. - Ростов н/Д: Феникс, 2009.

37. Интеллектуальные информационные системы в экономике. Учебное пособие/Тельнов Ю.Ф. Издание третье, расширенное и доработанное. Серия "Экономика и бизнес". - Москва.: СИНТЕГ, 2009.

. Общая и социальная экология: учеб. пособ. - М.: Рагс, 2007. - 408 с.

. Акимова Т.А. Экология. Человек - Экономика - Биота - Среда: учеб. для Вузов. - М., 2007. - 495 с.

. Бродский А.К. Общая экология: УЧЕБ. ДЛЯ СТУД. ВУЗов - М., 2008. - 256 С.

. Теория и методика экологического образования детей: учеб. пособие для студ. вузов. - М.: Академия, 2002. - 336 с.

Приложения


Приложение А


Исходный код главной страницы Web-приложения. php:

<? php_start ();("Content-Type: text/html; charset=utf-8");

/*ini_set ("display_errors", "1");_reporting (E_ALL); */

/*include block*/_once 'include/defines. php';_once 'include/basic_functions. php';_once PATH_BASE. 'config'. DS. 'config. php';_once PATH_BASE. 'include'. DS. 'mysql_connect. php';

/*classes*/_once PATH_BASE. 'adm'. DS. 'class'. DS. 'resize-class. php';_once PATH_BASE. 'include'. DS. 'classes'. DS. 'statusmessage. php';_once PATH_BASE. 'include'. DS. 'classes'. DS. 'profile. php';

/*modules*/_once PATH_BASE. 'include'. DS. 'modules'. DS. 'content_function. php';_once PATH_BASE. 'include'. DS. 'modules'. DS. 'file_function. php';_once PATH_BASE. 'include'. DS. 'modules'. DS. 'html_tag_function. php';_once PATH_BASE. 'include'. DS. 'modules'. DS. 'basket_function. php';_once PATH_BASE. 'include'. DS. 'modules'. DS. 'search. php';_once PATH_BASE. 'include'. DS. 'values. php';

/*header block*/_once 'template/page. php';

? >. php:

<? php('DS', DIRECTORY_SEPARATOR);('HOME_PAGE_LINK', '#"justify">/*base path*/

$basePath = explode (DS, dirname (__FILE__));_pop ($basePath);

$basePath = implode (DS, $basePath). DS;('PATH_BASE', $basePath);

? >_functions. php:

<? phpgetCurrentYear () {date ("Y");

}addSuffixToNumerals ($num, $word, $closure) {

$one_num = last_int ($num, 1);

$two_num = last_int ($num,

);

$finalClose = $closure [0];($one_num >= 2 && $one_num <= 4) {

$finalClose = $closure [1];

}($one_num >= 5 && $one_num <= 9 || $one_num == 0 || $two_num >= 10 && $two_num <= 20) {

Продолжение приложения А

$finalClose = $closure [2];

}$word. $finalClose;

}last_int ($num, $numSimbol) {

$result = (int) substr ($num, strlen ($num) - $numSimbol, strlen ($num));$result;

}getValue ($postValue, $getValue) {_dump ($postValue);_dump ($getValue);

}getTemplate ($template) {($template == '') {

$tempTemplate = 'index';

}($template == 'poster' || $template == 'content' || $template == 'basket'|| $template == 'search'|| $template == 'profile') {

$tempTemplate = $template;

}$tempTemplate;

}returnURL ($href, $type='') {

$resultURL = HOME_PAGE_LINK;

$linkArr = array ();($type! = '') {

$linkArr [] = $type;

}($href! = '') {

$linkArr [] = $href;

}(count ($linkArr) > 0) {

$resultURL = implode ('/', $linkArr);

$resultURL = HOME_PAGE_LINK. $resultURL;

}$resultURL;

}createBreadCrumb ($template, $link = '', $posterName = '', $type = '') {

$resultArr = array ();

$resultArr [] = createATag ('<strong>Главная</strong>');($template) {'content':($type) {'contact':

$resultArr [] = '<span>Контакты</span>';;

Продолжение приложения А'production':

$resultArr [] = '<span>Производство</span>';;

};'search':

$resultArr [] = '<span>Поиск</span>';;'poster':($link! = '') {

$catInfo = getCurrentCategoryInfo ($link);($posterName == '') {

$resultArr [] = '<span>'. $catInfo ['header']. '</span>';

}{

$resultArr [] = createATag ($catInfo ['header'], $catInfo ['link'], 'poster');

$resultArr [] = '<span>#'. $posterName. "</span>";

}

};

}

$result = implode ('<span>/</span>', $resultArr);$result;

}createTitle ($template, $link = '', $posterName = '', $type = '') {

$resultArr = 'Главная';($template) {'content':($type) {'contact':

$resultArr = 'Контакты';;'production':

$resultArr = 'Производство';;

};'search':

$resultArr = 'Поиск';;'poster':($link! = '') {

$catInfo = getCurrentCategoryInfo ($link);

$resultArr = $catInfo ['header'];

};

}

$result = $resultArr;

Продолжение приложения А$result;

}add_recently_watch ($poster_id) {(! empty ($_COOKIE ['recently'])) {

$next_step = count ($_COOKIE ['recently']);(! in_array ($poster_id, $_COOKIE ['recently'])) {("recently [$next_step]", $poster_id, time () + 360000000, '/');

}

}{("recently [0]", $poster_id, time () + 360000000, '/');

}

}addMesage ($status, $text) {

$classMessage = $status;

$_SESSION ['service_message'] = "<div>

}writeMessage () {$_SESSION ['service_message'];

$_SESSION ['service_message'] = '';

}currentEmail ($email) {true;

}

? >. php:

<? php

$config = array (

'css' => array (

'style. css',

'main_banner. css',

'content_page. css',

'jquery. lightbox-0.5. css',

'cart. css'

),

'js' => array (

'jquery. js',

'jquery. cookie. js',

'horizontal_slider. js',

'main. js',

'jquery. lightbox-0.5. js',

'cart. js'

),

);

$dbConfig = array (

'user' => 'root',

'password' => '11051988',

'db_host' => 'localhost',

'db_base' => 'posters'

);

? >

Продолжение приложения А_connect. php:

<? php

$connect = mysql_connect ($dbConfig ['db_host'], $dbConfig ['user'], $dbConfig ['password'])die ("Could not connect:". mysql_error ());_select_db ($dbConfig ['db_base'])die ("Could not select database:". mysql_error ());_query ('SET NAMES UTF8');

? >. php:

<? php

/*get or post value*/

$reqLink = $_GET ['link'];

$reqId = $_GET ['id'];

$reqImageId = $_GET ['image_id'];

$type = $_GET ['type'];

$action = $_GET ['action'];(empty ($action)) {

$action = $_POST ['action'];

}

$lastURL = $_SERVER ['HTTP_REFERER'];

$delete_action = $_POST ['delete_poster'];

$request_action = $_POST ['submit'];

/*basic value*/

$allCatSubIdLink = AllCatSubIdLink ();

$currentYear = getCurrentYear ();

$styles = createCssStylesTags ($config ['css']);

$scripts = createJSTags ($config ['js']);

$template = getTemplate ($_GET ['template']);

$allCategoryList = getAllCategoriesAlphabetical ();

$recentlyWatchList = getRecentlyWatchPoster ($allCatSubIdLink);

/*user*/

$userLogin = $_POST ['email'];

$userPassword = $_POST ['password'];

$userName = $_POST ['name'];

$userCity = $_POST ['city'];

$userPhone = $_POST ['phone'];

$statusMessage = new StatusMessage (true);

$user = new Profile ($statusMessage);

$userInfo = $user->get_user_info ();

$auth = $userInfo ['auth'];

/**/($template) {'index':

$bestSalePosterList = getBestSalePosterData ($allCatSubIdLink);

/*sliders*/

Продолжение приложения А

$allCategorySlider = createHorizontalSlider ('206x206', $allCategoryList, 'main_slider');

$recentlyWatchSlider = createHorizontalSlider ('209x198', $recentlyWatchList);

$bestSalePosterSlider = createHorizontalSlider ('165x150', $bestSalePosterList);

/*handlist*/

$mainHandlist = createAlphabeticalList (createAllCategoryATagArray ($allCategoryList),

);;'poster':

$posterHandlist = createAlphabeticalList (createAllCategoryATagArray ($allCategoryList),

);

$catInfo = getCurrentCategoryInfo ($reqLink);

$allPosterInCatArray = getAllPosterInCat ($catInfo ['id'], $catInfo ['link']);

$currentPosterInfo = getCurrentPosterInfo ($reqId, $allPosterInCatArray, $catInfo ['link']);_recently_watch ($currentPosterInfo ['id']);

$currentPosterSize = getCurrentPosterSize ($currentPosterInfo ['id'], $currentPosterInfo ['link']);

$currentPosterSizeI = getCurrentSizeI ($currentPosterSize, $reqImageId);

$currentImage = createCurrentPosterImage ($currentPosterSize [$currentPosterSizeI] ['big_image'], $currentPosterSize [$currentPosterSizeI] ['image']);

$posterSizeBlock = createSizeChage ($currentPosterSize, $currentPosterSizeI);

/*sliders*/

$recentlyWatchSlider = createHorizontalSlider ('140x110', $recentlyWatchList);

$allPosterInCatSlider = createHorizontalSlider ('209x198', $allPosterInCatArray, '', 'poster', $currentPosterInfo ['id']);;'content':

$contentHandlist = createAlphabeticalList (createAllCategoryATagArray ($allCategoryList), 1);;'profile':

$basketList = create_cart ($userInfo);

$contentHandlist = createAlphabeticalList (createAllCategoryATagArray ($allCategoryList), 1);

$recentlyWatchSlider = createHorizontalSlider ('147x135', $recentlyWatchList);;'basket':

$basketList = create_cart ($userInfo);

$contentHandlist = createAlphabeticalList (createAllCategoryATagArray ($allCategoryList), 1);;

}

$breadCrumb = createBreadCrumb ($template, $reqLink, $currentPosterInfo ['header'], $type);

$titlePage = createTitle ($template, $reqLink, $currentPosterInfo ['header'], $type);($action) {'logout':

$user->logout ();("Location:". HOME_PAGE_LINK); exit;;'authorization':

$user->auth ($userLogin, $userPassword);("Location:". HOME_PAGE_LINK); exit;;'register':

$user->register ($userLogin, $userPassword, $userName, $userCity, $userPhone);("Location:". HOME_PAGE_LINK); exit;

Продолжение приложения А;'change_data':

$user->change ($userInfo ['id'], $userLogin, $userPassword, $userName, $userCity, $userPhone);("Location: $lastURL"); exit;;'add_to_cart':($auth, $reqImageId, $userInfo);("Location: $lastURL"); exit;;'send_cart':

$mTitle = 'Zakaz postera';

$mAdress = 'info@artposters. kz';

// $mAdress = 'developer@illustrate. kz';

$idList = getIdList ($_REQUEST ['id_poster']);(! empty ($delete_action)) {($idList, $userInfo);

}{

$requestMake = makeRequest ($idList, $auth, $userInfo);($requestMake ['send_status']) {

$mText = $requestMake ['message'];

$sendStatus = mailer ($mAdress, $mTitle, $mText);($sendStatus) {('complete', 'Заявка отправлена');($idList, $userInfo);

}{('error', 'При отправке сообщения возникла ошибка, попробуйте еще раз');

}

}($auth) {("Location:". HOME_PAGE_LINK. 'profile'); exit;

}{("Location:". HOME_PAGE_LINK. 'basket'); exit;

};

}

$profileLink = returnURL ('profile');(! $auth) {

$profileLink = "# onclick=showPopupAlert ('login_popup'); return false; ";

}($template == 'profile' &&! $auth) {header ("Location:". HOME_PAGE_LINK); }

$authMessage = $statusMessage->printMessage ('auth');

$registerMessage = $statusMessage->printMessage ('register');

$changeMessage = $statusMessage->printMessage ('change');($authMessage! = '') {

$addAction = "showPopupAlert ('login_popup'); ";

}($registerMessage! = '') {

$addAction = "showPopupAlert ('register_popup'); ";

}($changeMessage! = '') {

$addAction = "showPopupAlert ('change_popup'); ";

}

? >


Содержание Введение 1. Анализ и постановка задачи 1.1 Область применения и требования создаваемого Web-приложения 1.1.1 Описание предприятия

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ