89569

Розробка Web-сайту та бази даних “Інтернет – магазину”

Дипломная

Информатика, кибернетика и программирование

Інтернет магазин - це реалізоване в мережі Інтернет представництво, шляхом створення Web-сервера для продажу товарів і послуг іншим користувачам мережі Інтернет. Інакше кажучи, Інтернет магазин - це співтовариство територіально роз’єднаних співробітників магазина (продавців, касирів) і покупців...

Украинкский

2015-05-13

3.46 MB

2 чел.

PAGE  25

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ВИЩЕ ПРОФЕСІЙНЕ УЧИЛИЩЕ № 1

Методична комісія загальнотехнічних дисциплін та спецдисциплін «Операторів електронно-обчислювальних та обчислювальних машин»

ДИПЛОМНА РОБОТА

на тему:

Розробка Web-сайту та бази даних
Інтернет – магазину

учень групи № 8  

спеціальності  

«Оператор електронно-обчислювальних машин»

Пархута Богдан

Науковий керівник:

Король Світлана Василівна

Робота заслухана на засіданні методичної комісії загальнотехнічних дисциплін та спецдисциплін «Операторів електронно-обчислювальних та обчислювальних машин» та рекомендована до захисту в ДКК,
протокол № від 200 р.

Голова методичної комісії________________________________ Король С.В.

РІВНЕ-2008


ЗМІСТ

[1]
РЕФЕРАТ

[2]
ВСТУП

[3]
РОЗДІЛ І

[4] ЗАГАЛЬНИЙ ОГЛЯД ІНТЕРНЕТ-МАГАЗИНІВ

[4.1] 1.1 Інтернет-магазини та їх особливості

[4.2] 1.2. Класифікація Інтернет – магазинів

[4.3] 1.3 Переваги та недоліки Інтернет-магазинів

[5]
РОЗДІЛ ІІ

[6] ІСНУЮЧІ ІНТЕРНЕТ-МАГАЗИНИ ТА

[7] ПРИНЦИПИ ЇХ ПОБУДОВИ ТА РОБОТИ

[7.1] 2.1 Структура побудови Інтернет-магазину

[7.2] 2.2 Аналіз платіжних систем

[7.3] 2.3 Огляд існуючих Інтернет-магазинів

[7.3.1] 2.3.1 Інтернет - магазин "Наш формат"

[7.3.2] 2.3.2 Запоріжський Інтернет-магазин домашньої електроніки

[7.3.3] 2.3.3 Львівський Інтернет-магазин «Ярст»

[7.3.4] 2.3.4 Рівненський Інтернет-магазин «Сайтег»

[7.3.5] 2.3.5. Рівненський Інтернет-магазин «Ентер»

[7.3.6] 2.3.6. Рівненський Інтернет-магазин «КТС»

[8] РОЗДІЛ ІІІ

[9] МАРКЕТИНГОВЕ ДОСЛІДЖЕННЯ ТА ЕКОНОМІЧНІ ПЕРЕДУМОВИ РОЗРОБКИ ІНТЕРНЕТ-МАГАЗИНУ

[9.1] 3.1. Маркетингове дослідження Інтернет-магазину

[9.2] 3.2 Витрати по створенню і розміщенню Інтернет-магазину

[9.3] в мережі Інтернет

[10] РОЗДІЛ ІV

[11] РОЗРОБКА ІНТЕРНЕТ-МАГАЗИНУ
ТА ЙОГО ПРОГРАМНА РЕАЛІЗАЦІЯ

[11.1] 4.1 PHP

[12] Традиційність

[13] Наявність вихідного коду та безкоштовність

[14] Ефективність

[15] Докладний опис мови

[16] Робота з рядками

[17] Змішані типи даних

[18] Конструкції мови

[19] Додаткові можливості

[20] Ліцензія

[21] Історія. Перші версії

[22] Визнання та поширення

[23] Базовий синтаксис

[24] Відокремлення інструкцій

[25] Коментарі

[26] Змінні

[26.1] 4.2 MySQL

[26.2] Про походження MySQL

[26.3] Ліцензування

[26.4] Платформи

[26.5] Мови програмування

[26.6] Застаріла версія

[26.7] MySQL4.1

[26.8] MySQL5.0

[26.9] MySQL5.1

[26.10] MySQL6.0

[26.11] Локалізація

[27] Основні можливості MySQL

[27.0.1] Переваги

[27.0.2] Недоліки

[27.0.2.1] Невідповідність реляційної моделі даних. Творець реляційної моделі даних Эдгар Кодд, Кристофер Дейт і їхні прихильники вказують на те, що SQL не є істинно реляционным мовою. Зокрема вони вказують на наступні проблеми SQL:

[27.1] 4.3 Організація діяльності Інтернет-магазину

[27.2] 4.4  Опис роботи Web-сайту «Інтернет-магазин»

[27.2.1] 4.4.1 Встановлення програмного забезпечення

[27.2.2] 4.4.2 Принцип роботи Інтернет-магазину

[28]
РОЗДІЛ V

[29] ОХОРОНА ПРАЦІ

[30] 5.1. Правові та організаційні питання охорони праці

[30.1]
5.2. Правила охорони праці під час експлуатації
електронно-обчислювальних машин

[30.2] 5.3. Пожежна безпека

[31]
ВИСНОВКИ

[32]
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

[33] ДОДАТКИ


РЕФЕРАТ

Дипломна робота складається з 139 ст., 27 рис., 8 таблиць, 5 діаграм, 6 додатків.

Об'єкт дослідження – Інтернет магазин.

Мета роботи - проаналізувати специфіку діяльності Інтернет магазинів, їх відмінності від звичайних магазинів, розробити web-сайт та базу даних „Інтернет-магазину”.

Інтернет магазин - це реалізоване в мережі Інтернет представництво, шляхом створення Web-сервера для продажу товарів і послуг іншим користувачам мережі Інтернет. Інакше кажучи, Інтернет магазин - це співтовариство територіально роз'єднаних співробітників магазина (продавців, касирів) і покупців, які можуть спілкуватися і обмінюватися інформацією через електронні засоби зв'язку при повній (або мінімальній) відсутності особистого прямого контакту. Електронна торгівля у Інтернет магазині ґрунтується на тій же структурі, що і традиційна торгівля. Переваги Інтернет магазина перед реальним очевидні. Зменшується чисельність персоналу за рахунок скорочення об'єму взаємодії з клієнтами, оренда дискового простору і розміщення «електронної вітрини» дешевше і простіше за оренду торгових приміщень і розміщення товарів на полицях, немає потреби в касовому обслуговуванні і т.д.

Ключові слова: ІНТЕРНЕТ-МАГАЗИН, INTERNET, WEB-САЙТ, WEB-СТОРІНКА, WEB-СЕРВЕР, ЕЛЕКТРОННИЙ МАГАЗИН, „ЕЛЕКТРОННИЙ” ПОКУПЕЦЬ.


ВСТУП

Розробка Інтернет-магазину та його використання є актуальним питанням на сьогоднішній день, оскільки мільйони людей щодня, не виходячи з дому, купують різні товари в електронних магазинах. В світі, а зокрема в Україні величезними темпами росте кількість користувачів Інтернет і, як наслідок, кількість «електронних» покупців.

Інтернет зближує, реакція на будь-яку подію поступає практично негайно, а відстані зникають. Інтернет - магазини істотно зменшують витрати виробника, заощадивши на утриманні звичайного магазина, розширюють ринки збуту, так само як і розширює можливість покупця - купувати будь-який товар у будь-який час в будь-якій країні, в будь-якому місті, у будь-який час доби. Це дає Інтернет-магазинам перевагу перед звичайними магазинами. Цей момент є істотним під час переходу виробників із «звичайної» торгівлі на «електронну» [1].

Інтернет - магазини, що пережили кризу, укріпили свої позиції на ринку, за рахунок скуповування менш вдалих конкурентів. Гіганти оффлайнового бізнесу, в 1999 році що коштували в десятки разів дешевше за своїх онлайнових побратимів, після кризи теж дістали можливість вийти на ринок Інтернету, запропонувавши вищу якість послуг і гучне ім'я.

В Україні у сфері електронної комерції традиційно працюють фірми по наданню послуг доступу в Інтернет: web-портали, пошукові машини, служби web-пошти, нові Інтернет - агентства. Тут немає ні лідерів оффлайнового ринку, ні представництв крупних міжнародних Інтернет –компаній [8].

Традиційний ринок Інтернет - комерції зароджувався як ринок роздрібної торгівлі. Але поступово на ринку стали з'являєтися рішення, орієнтовані не на кінцевих споживачів, а на організації, так званий ринок B2b, або business-to-business.

Спочатку, на ринку B2b пропонувалися продукти, пов'язані власне з організацією роздрібної торгівлі (готові Інтернет - магазини, послуги з реклами, впровадження Інтернет - торгівлі в традиційні бізнес - процеси і тому подібне). Але поступово через Інтернет почали продаватися рішення, безпосередньо з Інтернет не зв'язані (комерційне програмне забезпечення, послуги з автоматизації, оптова торгівля, брокерські послуги, і тому подібне).

З всього вище сказаного однозначно зрозуміла актуальність питання дослідження Інтернет-магазину та його розробки з використанням сучасних Internet-технологій. В рамках дипломного проекту перед нами було поставлено завдання розробити Web-сайт «Інтернет-магазин».

Мета роботи. Проаналізувати специфіку діяльності Інтернет магазинів, їх відмінності від звичайних магазинів, розглянути сучасні засоби по розробці Інтернет-магазинів та розробити web- сайт „Інтернет-магазин”.

Новизна роботи. Застосування сучасних Internet технологій, а саме мови програмування PHP для розробки Web-сайту та систему управління базами даних MySQL для розробки бази даних Інтернет-магазину.

Завдання на дипломну роботу:

  1.  Здійснити пошук інформації по тематиці дипломної роботи та провести її аналіз та дослідження;
  2.  Ознайомитись з особливостями Інтернет-магазину, його позитивними та негативними якостями, та визначити їх класифікацію;
  3.  Розглянути існуючі Інтернет-магазини та вивчити їх принципи побудови та роботи;
  4.  Розглянути структуру побудови Інтернет-магазинів;
  5.  Провести маркетингове дослідження та розглянути економічні передумови створення Інтернет-магазину;
  6.  Розглянути сучасні програмні засоби по розробці Інтернет-магазинів;
  7.  Розробити Web-сайт та базу даних «Інтернет-магазину».

 


РОЗДІЛ І

ЗАГАЛЬНИЙ ОГЛЯД ІНТЕРНЕТ-МАГАЗИНІВ

1.1 Інтернет-магазини та їх особливості

Інтернет - магазин (електронний магазин, онлайновий магазин) - це програмний комплекс, який дозволяє продавати товари чи послуги через мережу Інтернет та автоматизувати управління бізнес-процесами. Електронні магазини об'єднують елементи прямого маркетингу та традиційної торгівлі. Основними відмінностями Інтернет-магазину від традиційного є інтерактивність, велика кількість інформації та асортименту продукції і персоналізований підхід до кожного відвідувача. Найбільшим недоліком електронних магазинів є те, що не можна торкнутися товару та оцінити його візуально. Проте, цей недолік з успіхом компенсується великою кількістю інформації, яку не зможе надати продавець в традиційному магазині.

Електронна торгівля у віртуальному магазині ґрунтується на тій же структурі, що і традиційна торгівля [1].

Таблиця 1.1. Порівняльна характеристика
традиційної і електронної торгівлі

Традиційний магазин

Інтернет - магазин

Торговий зал

Інтернет - магазин

Ходьба покупця по торговому залу і огляд товарів на полицях магазина

Перегляд покупцем сторінок сервера

Особистий контакт покупця з продавцем (консультація)

Консультація у продавця (при необхідності) по комп'ютерній мережі або по телефону

Вибір покупцем товару

Вибір покупцем товару

Замовлення товару

Замовлення товару через сервер

Виписка продавцем і вручення покупцеві рахунку на оплату

Пересилка продавцем по комп'ютерних мережах покупцеві рахунку на оплату

Оплата покупцем рахунку на товар в касі магазина готівкою або банківською картою

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

Основними функціями електронного магазину є [22]:

- надання якомога повнішої інформації про представлені товари та послуги;

- прийом та обробка замовлень;

- персоналізація відвідувачів;

- проведення платежів (за умови підключення до платіжної системи);

- збір та аналіз статистичної інформації.

Інтернет - магазин - це сайт, оснащений он-лайн-вітриною, що дозволяє приймати замовлення не тільки по телефону, але і через сайт на електронну пошту.

Інтернет - магазин дозволяє оформляти взаєморозрахунки з покупцями, як за готівку, так і за безготівковим розрахунком з можливістю роздруківки рахунку-фактури і вибором «з ПДВ» і «без ПДВ»

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

Інтернет - магазин підійде для тих, хто хоче ефективно почати продажі, швидко і недорого організувавши он-лайн-вітрину з функцією замовлення товарів через Інтернет.

1.2. Класифікація Інтернет – магазинів

Класифікувати Інтернет-магазини можна по різних критеріях [18].

1. Класифікація по моделі бізнесу:

  •  онлайновий магазин: поєднання оффлайнового бізнесу з онлайновим (коли Інтернет-магазин був створений на основі реальної торгової структури, що вже діяла).

2. По відношенню з постачальниками:

  •  мають власний склад (наявність реальних товарних запасів)
  •  працюють по договорах з постачальниками (відсутність значних власних запасів).

3. Класифікація по товарному асортименту - книги, аудіо, відеокасети, CD, DVD, комп'ютерна, побутова техніка, мобільні телефони.

Серед методів роздрібного продажу товарів в мережі можна виділити:

  •  Інтернет-магазини (автоматичні магазини);
  •  Web-вітрини;
  •  торгові автомати.

Інтернет-вітрина – швидше це рекламний сервер. На вітрині викладають інформацію про товари, яку постійно оновлюють. Витрати на її створення та адміністрування можуть бути досить низькими, а практична користь такої вітрини очевидна. Але це ще не торгівля. Потенційний покупець, відвідавши вітрину, повинен подзвонити на фірму, сплатити товар, домовитися про доставку. Тому Інтернет-вітрина виправдана в тих випадках, коли покупця треба познайомити з складною продукцією, на вивчення якої в торговому залі у нього піде дуже багато часу.

Інтернет-вітрина може бути розміщена де завгодно – на власному сервері, на сервері провайдера, на сервері, що надає безкоштовні сторінки. Для роботи з вітриною досить мати підключення через телефонну лінію і мінімум навиків роботи з HTML.

Торговий автомат може не тільки виконувати функції вітрини, але і приймати замовлення і передавати їх менеджерові, тобто оформляти замовлення і виписувати рахунки на оплату без присутності покупця. Торговий автомат реально торгує і по співвідношенню витрат до результату найбільш переважний для тестових проектів з невеликим потоком покупців. Торговий автомат, так само як і Інтернет-вітрину, можна розмістити і на своєму сервері, і на сервері провайдера. Проте його створення і адміністрування вимагає навиків і певної кваліфікації.

Автоматичний магазин – ефективне і комплексне рішення в торговому бізнесі. Він не тільки виписує рахунки, але і відстежує замовлення, приймає електронні платежі і формує заявки на доставку товарів покупцям. Тут завдання менеджера - контролювати роботу системи, складну в обслуговуванні.

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

1.3 Переваги та недоліки Інтернет-магазинів

За останні роки практично повсюдного поширення набуло придбання будь-якої продукції в Інтернет-магазинах. Це дуже серйозний крок на шляху до прогресу, перш за все тому, що він дає людям можливість уникнути необхідності поїздок по стаціонарних торгових точках. Звичайно, прості магазини як існували раніше, так й існують зараз і вони завжди будуть в наявності, поки є люди, які отримують задоволення від "шопінга". Проте така можливість далеко не у всіх. Наприклад, більшість людей настільки зайнята своєю роботою і вирішенням якихось побутових проблем, що у них просто немає вільного часу на походи по салонах і магазинах. Але що ж робити, якщо будь-яку серйозну покупку, наприклад, комп'ютер все ж таки необхідно зробити? Скористатися послугою Інтернет-магазина. По-перше, це гарантія отримання дійсно якісного сертифікованого товару. По-друге, це шанс уникнути виснажливих пошуків. По-третє, можна заощадити, оскільки, найчастіше вартість товару в Інтернет-магазинах хоч трохи, але нижче звичайної. І, нарешті, по-четверте, можна знайти все, що завгодно, оскільки в Інтернеті можна придбати практично все. Так само не варто недооцінювати можливість безготівкового розрахунку, адже це дуже зручно, але на жаль, далеко не всі стаціонарні торгові точки, дають своїм покупцям такий шанс. Інтернет-магазин, дуже потрібна і важлива річ. Відповідно, якщо є попит, значить, буде і пропозиція. Чисельність будь-яких Інтернет-магазинів росте в мережі Інтернет з кожним днем. Це дуже вигідна можливість розширення власного бізнесу шляхом збільшення об'єму продажі.

Структура Інтернет-магазину небагато чим відрізняється від традиційного, але тільки на відміну від останнього діяти йому доводиться в жорсткіших умовах тому, що він позбавлений такої переваги звичайного магазина, як постійна аудиторія. Наявність постійних відвідувачів для Інтернет-магазинів дуже важлива, оскільки половина його покупок здійснюється "повторними" покупцями. Крім того, в Інтернет багато що визначає проста звичка користувача до того або іншого ресурсу. Відповідно, щоб утримати вже придбаних клієнтів і привернути нових, Інтернет-магазину необхідно сконцентрувати увагу на тих зручностях для покупця, які можливі при Інтернет-торгівлі [1,20].

Переваги Інтернет-магазинів

Найбільш очевидною перевагою електронної торгівлі є можливість "проходжуватися" по магазинах в Інтернет, не виходячи при цьому з будинку [8,24-26].

Діаграма 1.1. Переваги Інтернет - магазинів.

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

Економія часу. У Інтернет можна вибирати і порівнювати характеристики товарів серед декількох магазинів, і дана процедура займає хвилини на відміну від утомливих походів по традиційних магазинах. Покупка необхідного товару через Інтернет економить такий вельми дорогий час. Інтернет-магазин доступний 24 години в добу, 7 днів в тиждень, 365 днів в році. Працює без свят і вихідних, черг там немає. Покупець може у будь-який час відірватися від вибору товару, якщо в даний момент у нього немає часу, і повернутися до вибору навіть через декілька діб (всі дані по вибраних позиціях залишаються в аккаунті користувача). Продовжити вибір можна у вільний час - на робочому місці або удома, увечері або вночі.

Низькі ціни. Більшість товарів в мережі Інтернет можна придбати за нижчу ціну, ніж в звичайному супермаркеті. Чим це обумовлено? По-перше, у Інтернет-магазині немає необхідності орендувати торгові площі, по-друге, відсутні витрати по охороні і змісту торгових залів, немає потреби витрачати гроші на найм і навчання продавців-консультантів, по-третє, не потрібно оплачувати послуги посередників.

Безкоштовна доставка (в більшості випадків). Після оформлення замовлення і передачі його в службу доставки, кур'єр безкоштовно привозить покупку додому або в офіс, в найкращий час. У покупців Інтернет - магазинів «не болить голова» з приводу отримання замовлення, їх не обтяжує сама думка про перетягання важких сумок від магазину до будинку.

Свобода вибору. У відвідувачів Інтернет - магазинів існує повна, нічим не обмежена свобода вибору. Сформована заявка поступає не на склад рядового роздрібного магазину, а на найбільший оптовий склад, де є величезний вибір товарів. У Інтернет - магазині можна ознайомитися з інструкціями по застосуванню і подивитися фотографії товарів, не покидаючи улюбленого крісла перед монітором комп'ютера. Звичайно, не можна ознайомитися з товаром «живцем», відчути його руками, але є можливість сходити в звичайний магазин, подивитися на уподобаний товар, ще раз зважити все «за і проти», й істотно заощадити значну суму грошей при покупці через Інтернет - магазин.

Психологічний комфорт. Відвідувачі Інтернет-магазинів не штовхаються в натовпі інших покупців, з нетерпінням чекаючи, коли підійде вільний менеджер. Там ніхто не докучає настирливими порадами і не примушує купити непотрібну річ. Відсутній будь-який тиск з боку продавця. Консультації з будь-якого питання, здійснюються через службу online підтримки: «Бажаєте замовити новинку, що ще не поступила на склад магазину? Залиште заявку і вас проінформують про надходження по електронній пошті».

 Зручність оплати. Клієнти можуть вибрати найоптимальніший спосіб оплати вибраного товару: готівкою при доставці кур'єром, поштовий або банківський переказ, оплата кредитною картою або електронними грошима (Webmoney, та ін.). Вони можуть відмовитися від покупки, навіть не оплачуючи витрати при доставці.

 Анонімність. Про покупки відвідувачів Інтернет - магазинів ніхто не дізнається, якщо тільки вони самі не захочуть поділитися цією інформацією. Тільки Інтернет - магазин гарантує повну анонімність покупця, адже реєструватися можна під будь-яким ім'ям.

Недоліки Інтернет-магазинів

Найбільш важливими перешкодами здійснення покупки в Інтернет - магазині виявився не достатньо добре налагоджений процес продажу товарів, куди входить [8,24-26] :

Діаграма 1.2. Недоліки Інтернет - магазинів.

Недосконала система доставки. Покупці вимагають від Інтернет - магазинів швидкої і якісної доставки замовлень. Покупцям дуже зручно, коли покупки доставляють за вказаною адресою прямо на будинок або на роботу. Недосконалість системи доставки виражається в:

  •  не дотриманні терміну доставки товару;

Часто саме швидкість доставки є визначальним чинником у вирішенні при виборі товару в Інтернет - магазині. Якщо товар потрібний терміново, то вибирається той магазин, який пропонує швидку доставку.

  •  дорогій доставці товару;

Оперативність служби доставки багато в чому визначає «лице» магазину. Але поки, по визнанню співробітників Інтернет - магазинів, доставка товарів є одним з самих слабких місць компаній.

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

Найбільш економним способом оплати можна віднести передоплату банківським переказом.  

Складна система замовлення. Складна система замовлення полягає в довгому і заплутаному процесі оформлення покупки. Покупцеві необхідно заповнити довгу і часто не зовсім зрозумілою форму, внаслідок чого витрачається багато часу в Інтернет, який не завжди дешево стоїть.

Також можна відзначити повільну швидкість завантаження деяких магазинів, що може послужити причиною відходу з магазину.  

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

Крім того, нестабільний асортимент деяких магазинів, тобто коли після вибору товару і оформлення покупки виявлялося, що потрібного товару немає на складі або просто магазин так і не зв'язався з покупцем.

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

Проблема віртуальності. Неможливість відчути і потримати товар, що купується (на картинці він може виглядати відмінно, але в реалі зовсім інакше).

Невиконання вибору замовлення. Можуть переплутати колір товару, модель, вигляд і так далі

Втрата замовлення. Рідко, але буває, замовлення взагалі втрачаються.


РОЗДІЛ ІІ

ІСНУЮЧІ ІНТЕРНЕТ-МАГАЗИНИ ТА 

ПРИНЦИПИ ЇХ ПОБУДОВИ ТА РОБОТИ

2.1 Структура побудови Інтернет-магазину

Вдалий Web-сайт - це надзвичайно ефективний інструмент торгівлі - він здатний захоплювати увагу аудиторії. Як і будь-який інший маркетинговий інструмент, заснований на принципі безпосереднього відгуку, перш за все він повинен заінтригувати відвідувача, а потім наштовхнути його на певні дії. Проте, багато хто ігнорує цю особливість головної сторінки, що часто приводить до того, що відвідувачі не затримуються на сайті надовго і покидають його, ледве зайшовши. Такі Web-сайти, що містять іноді величезну кількість корисних порад і статей, практично ніколи не досягають передбачуваного рівня відвідуваності, не говорячи вже про продажі 6].

Зробивши всього декілька змін, простий Web-сайт може перетворитися  на надійніший і ефективніший інструмент. Важливо пам'ятати, що день за днем на потенційних клієнтів обрушується потік інформації і різних рекламних повідомлень, і що в плані завоювання їх уваги існує гранично жорстка конкуренція. Web-сайт, здатний привернути увагу і викликати цікавість, спонукає клієнтів не тільки проглянути сторінки, що залишилися, і зробити покупки, але і знову відвідати його через деякий час, а також рекомендувати своїм друзям і знайомим.

Типовий варіант Інтернет-магазину складається з наступних функціональних частин [9]:

  •  каталог товарів;
  •  пошукова система;
  •  призначена для користувача корзина;
  •  реєстраційна форма;
  •  форма відправки замовлення.

Каталог товарів. Каталог є складною і багаторівневою структурою даних, яка повинна простим і зрозумілим способом проводити впорядковування товарів. Найпростіше такий каталог представити у вигляді дерева об'єктів, верхній рівень якого складається із списку розділів. Розділи можуть містити підрозділи або посилання на конкретний товар і так далі Таке впорядковування просто необхідне для зручного і швидкого пошуку і замовлення товарів.

Пошукова система. Пошукова система є обов'язковим елементом динамічного каталогу і реалізується на стороні сервера. Не дивлячись на те, що каталог забезпечує впорядковування і угрупування даних, пошукова система дає користувачеві можливість швидкого пошуку інформації, що особливо важливе у тому випадку, коли каталог є достатньо розгалуженою структурою даних з великою кількістю розділів, підрозділів і товарів, користувач погано представляє в якому розділі може знаходитися товар, що цікавить його, і чи є він в каталозі взагалі. Пошукова система в деяких випадках дозволяє значно скоротити кількість переходів між сторінками каталогу для доступу до інформації.

Особливість реалізації пошуку в Інтернеті полягає в тому, що тут відбувається вибірка всіх записів, які задовольняють умовам запиту. У разі великої вибірки даних, виведення результатів пошуку здійснюється посторінковий для того, щоб відвідувачам не доводилося довго чекати завантаження всієї вибірки, яка може включати сотні, тисячі. Як правило, відвідувачі не проглядають всі сторінки вибірки, обмежуючись двома або трьома. Тому даний механізм пошуку у багатьох випадках працює украй поволі і неефективно. Проте він дозволяє здійснити вибірку однакових товарів від різних постачальників, порівняти їх параметри між собою і вибрати оптимальний варіант.

Корзина. Призначена для користувача корзина є деяким масивом даних, який служить для зберігання замовленого користувачем товару.

Реєстраційна форма. Служить для введення персональних даних користувачів. Надалі ця інформація використовується для їх ідентифікації між сеансами роботи з Інтернет-магазином. Дана інформація може зберігатися як на стороні сервера, так і на стороні клієнта.

Форма відправки замовлення. Форма відправки замовлення служить для введення контактної інформації замовника і відправки її і замовлення на електронний ящик організації.

Отже, що ж бачить користувач, що зайшов в магазин? По-перше, список товарів, що знаходяться на складі. Оскільки онлайновий «прилавок» як правило, прив'язаний до системи автоматизації будь-якого підприємства, то цей список містить ті ж вироби, що є у продажу, і в звичайних (не електронних) магазинах. Вміст складу представляється зазвичай у вигляді ієрархічної деревовидної структури, базовими елементами якої є групи товарів. Клацнувши мишею на групі, вона розгортається, відкриваючи список підгруп або конкретних виробів певного типу. Іноді покупець може подивитися картинку із зображенням товару і його характеристики, а також додати його в свій кошик.

Наповнивши кошик, клієнт віддає команду «Виконати замовлення» і вибирає зручну для нього форму оплати. Якщо він здійснює покупку в магазині вперше, то його зазвичай просять вказати деякі відомості про себе - ім'я, телефон, адреса та ін. Корпоративний покупець повідомляє назву підприємства, номер розрахункового рахунку, ім'я і телефон контактної особи. На цьому етапі покупцеві привласнюється певний ідентифікаційний код. Це робиться для того, щоб коли він зайде в магазин наступного разу, всю вказану вище інформацію можна буде не вводити - досить вказати свій код. Далі здійснюється розрахунок і безпосередня передача товару клієнтові.

Існують наступні способи доставки замовлення: кур'єрськими службами, звичайною поштою, або авіапоштою по Україні, країнам ближнього і дальнього зарубіжжя, само вивезенням й інші способи доставки.

2.2 Аналіз платіжних систем

Оскільки створюване програмне забезпечення є електронним  магазином, неможливо обійти тему оплати товару в мережі Інтернет. Спершу розглянемо існуючі системи оплати в мережі Інтернет [20,24-26].

Традиційні методи оплати, включаючи готівку, банківські перекази, чеки, пластикові картки, винайдені задовго до виникнення електронної комерції. Тому немає нічого дивовижного в тому, що вони не повністю відповідають її потребам. Безумовно, при покупці звичайного «фізичного» товару гроші можна взяти з покупця при доставці. Але якщо отримується «цифровий» товар або інформація, обов'язково повинен бути спосіб оплатити покупки прямо на місці», тобто на сайті продавця. От чому в електронній комерції надзвичайно гостро поставлене питання розробки універсального способу оплати покупок в Інтернет, який би дозволив робити дешеві і безпечні платежі в режимі реального часу.

До способів оплати покупок в Інтернет, електронним шляхом, можна віднести наступні:

- оплата з рахунку мобільного телефону (m-commerce);

- оплата по картах передоплати (скретч-картам);

- оплата електронними грошима;

- оплата платіжними картами.

Оплата з рахунку мобільного телефону (m-commerce). Мобільна комерція це використання мобільних портативних пристроїв для спілкування, розваги, отримання і передачі інформації, здійснення транзакцій через суспільні і приватні мережі.

Сьогодні на ринку з'явилася прекрасна можливість оплачувати послуги або товари різних компаній через мобільний телефон. Ви можете робити покупки в Інтернет - магазинах, оплачувати комунальні платежі і навіть переводити гроші по банківських реквізитах. Деякі мобільні компанії надають цю послугу безкоштовно, як частина звичайного пакету користувача мобільного телефону. Гроші, які будуть використані власником мобільного телефону для покупки товарів або послуг можуть бути зняті з рахунку власника телефону або із спеціальної карти, яку потрібно спочатку купити, а потім активувати зі свого телефону.

Оплата послуги або товару відбувається за допомогою посилки секретного повідомлення (SMS), що включає ланцюжок інформації типу номер рахунку власника телефона/сумма до оплати або кодовий номер товару або послуги/ номер рахунку продавця.

У випадку якщо розмір здійснюваного платежу перевищує залишок засобів на поточній карті, необхідно активувати нову карту. При цьому невикористані залишки грошових коштів з попередніх карт додаються до номіналу активованої карти.

Важливо відзначити, що для того, щоб ви могли використовувати цю функцію ваш телефон повинен бути оснащений функцією WAP або деяким власним мікробраузером. Мобільна комерція робить користувача ще більш незалежним, не прив'язаним до стаціонарних пристроїв, надаючи всі вище перелічені можливості за наявності одного тільки мобільного телефону або кишенькового комп'ютера. Це дуже важливо для ділової людини: часто багато що залежить від миттєво ухваленого рішення, і цьому не повинні перешкоджати такі чинники, як неможливість швидкого оформлення операції або відсутність доступу до інформаційних каналів.

Оплата по картах передоплати (скретч-картам). Скретч-карти є картами передоплати оскільки, купуючи їх, ви робите передоплату сервісу або товару, який збираєтеся замовити. Свою назву вони отримали від англійського слова «scratch». Саме наявність особливого захисного шару того, що приховує буквено-цифровий набір, є відмітною особливістю карт передоплати. Дуже важливо відзначити, що кожна карта передоплати має свій унікальний серійний номер, який використовуватиметься при оплаті послуг.

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

Карти передоплати набули достатньо широкого поширення, оскільки є зручним способом плати послуг і покупок. Їх активно використовують компанії, що займаються стільниковим зв'язком, наданням послуг Інтернет провайдерів і тому подібне.

Оплата електронними грошима. Цифрові гроші є основою платіжної системи Інтернет. Вони можуть бути класифіковані по видах організації їх функціонування, по рівню безпеки, а також за способом розрахунку.

Цифрову готівку можна уявити собі як файли-жетони, замінюючи готівку. Продавці і покупці можуть вільно обмінюватися цими "монетами" по мережі, оплачуючи ними товари і послуги. Для вказаної мети учасники системи встановлюють у себе на комп'ютерах особливу програму - "електронний гаманець", який забезпечує облік і передачу жетонів, а також перевірку їх достовірності. Цифрові гроші можуть необмежено довго звертатися в мережі, але також можуть у будь-який час бути обмінені на справжні гроші у організаторів системи або в банках, що беруть участь в ній.

Різновидом електронних грошей є системи цифрової готівки, засновані на використанні технології smart-card. Сучасна смарт-карта - це маленький комп'ютер зі своїм процесором, пам'яттю, програмним забезпеченням і системою введення/виводу інформації.  У чіпі такої картки зберігається не що інше, як електронні гроші в описаному вище сенсі.

Поки смарт-карта вживається як звичайна дебетова карта (звана електронним гаманцем), до якої вносяться записи про списання грошей, або просто інформація про клієнта. Цифрова готівка на базі смарт-карт не тільки може забезпечити необхідний рівень конфіденційності і анонімності, але і не вимагає зв'язку з центром для підтвердження оплати на відміну від подібних систем на базі персонального комп'ютера. Єдина незручність полягає в тому, що для переказу електронних грошей з картки на комп'ютер або назад необхідний особливий пристрій для читання карток, карт-рідер, що приєднується до комп'ютера.

Оплата платіжними картами. Кредитна карта - іменний платіжно-розрахунковий документ у вигляді пластикової картки, що видається банком своїм вкладникам для безготівкової оплати ними товарів і послуг в роздрібній торговій мережі, забезпеченій комп'ютерними пристроями, передавальними запитами на оплату товару в банк.

Кредитна картка засвідчує наявність у її власника поточного рахунку в банці. У різних країнах використовуються кредитні картки американських кредитно-фінансових груп  типу Visa, Mastercard, American Express і так далі.

Дебетові картки можуть використовуватися при оплаті товарів і послуг через Інтернет в режимі он-лайн так само, як при отриманні готівки в банкоматі: для здійснення платежу клієнт повинен ввести номер картки і PIN-код.  

Віртуальні карти. Оскільки використання класичної кредитної карти для розрахунків в Інтернет є небезпечним, були розроблені віртуальні карти типу VISA E-c@rd і Virtual Mastercard, які призначені виключно для розрахунків в Інтернет. VISA E-c@rd розроблена за технологією міжнародної платіжної системи VISA Int. Virtual Mastercard розроблена за технологією міжнародної платіжної системи Mastercard Int.

Випуском подібних карт сьогодні займаються різні банки своєчасно оцінивши їх переваги і потенціал. VISA E-c@rd і Virtual Mastercard застосовується виключно для оплати через Інтернет товарів і послуг в електронних магазинах по всьому світу, включаючи Україну, а також послуг операторів стільникового зв'язку, провайдерів Інтернету, туристичних фірм і готелів.

До покупок, не сплачених електронних шляхом можна віднести:

  •  оплата кур'єрові готівкою;
  •  передоплата за безготівковим розрахунком;
  •  оплата післяплатою.

Оплата кур'єрові готівкою. Один з найпростіших способів оплати це оплата кур'єрові. Ви просто вручаєте гроші кур'єрові і розписуєтеся в отриманні замовлення. На жаль цей спосіб можливий, не скрізь.

Після вибору товару в Інтернет - магазині покупець розміщує замовлення, в якому указує адресу для доставки (додому, в офіс). Кур'єр привозить товари за вказаною адресою і отримує гроші.

Переваги цього способу, напевно, можна перераховувати нескінченно:

  •  гарантія отримання товару (покупцем) і грошей (продавцем). Обдурити тут, звичайно, можна, але можливості не більше, ніж в звичайному магазині.
  •  можливість перевірити товар (і комплектність) відразу, і повернути його, відмовившись від покупки.
  •  подивитися в очі живій людині, попросити його розповісти про товар, показати його в роботі.
  •  отримати всі необхідні документи: гарантійний талон, товарний чек.

Недоліки також очевидні:

  •  не завжди приємно бачити у себе вдома (або в офісі) незнайомої людини (кур'єра), спілкуватися з ним.
  •  часто очікування кур'єра перетворюється на тортури, і відбиває всяке бажання що-небудь купувати.

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

Можна зробити передоплату вартості замовлення в найближчому відділенні Ощадбанку (або в будь-якому іншому). Для цього треба роздрукувати бланк, який ви отримаєте по e-mail або, який згенерує відразу по завершенню процедури оформлення замовлення (цей бланк, також, можна використовувати просто як зразок для заповнення друкарського бланка в Банці). Оплата через Ощадбанк обійдеться в 3% від вартості замовлення, що істотно дешевше і швидше, ніж поштовий або телеграфний переказ. Як тільки гроші прийдуть на рахунок, магазини відправляють замовлення.

Оплата післяплатою. Оплачувана покупка при отриманні на поштовому відділенні називається оплатою післяплатою. При оплаті післяплатою, пошта стягує 8% від вартості замовлення. Порядок оплати такий:

  •   на вказану адресу присилається замовлення, або заповнюється певна форма оплати запропонована Інтернет - магазином.
  •   указуються свої ПІБ, повна адреса з індексом, контактний телефон і       e-mail.
  •   при отриманні поштового оповіщення, перераховуються поштові витрати і вартість замовлення на вказані банківські реквізити.
  •   далі по отриманій в банці квитанції поштовими працівниками видається замовлення.

2.3 Огляд існуючих Інтернет-магазинів

2.3.1 Інтернет - магазин "Наш формат"

Рис.2.1. Інтернет-магазин «Наш формат»

Загальні правила. Взаємовідношення сторін регулюються Цивільним Кодексом України, законом України  "Про захист прав споживачів" та іншими законодавчими актами, що діють на момент оформлення операції між сторонами. Через Інтернет-магазин здійснюється продаж споживачам мультимедійної, сувенірної та друкованої продукції, за посередництвом доступу до всесвітньої  мережі Інтернет. Продавцем виступає  фізична особа підприємець Смазалова Ольга Любомирівна. Замовлення через Інтернет магазин може здійснюватися цілодобово.

Каталог товарів. Весь асортимент, пропонованих товарів, представлений в каталозі. У ньому міститься повна, достовірна і доступна інформація, що характеризує пропонований товар, а саме: найменування, фірмове найменування, зображення, опис товару, можливість прослухати треки (стосовно звукових файлів, які викладені в скороченому вигляді для ознайомлення зі змістом товару), ціна товару та інше.

Розміщення замовлень. Можливість розміщувати замовлення в магазині цілодобово і без вихідних. Всі процедури обробки замовлень виконуються лише в межах електронного каталогу і мають переваги перед будь-якими іншими документами і засобами комунікації, що є у розпорядженні замовника. Інтернет-магазин і клієнт заявляють про свою згоду з даними правилами роботи, якщо інше не зафіксоване у письмовій формі.

Оформлення замовлення. Якщо вас зацікавив певний товар розміщений в інтернет-магазині необхідно оформити замовлення на придбання товару. Процедура замовлення та отримання товару виглядає наступним чином.

Замовлення на сайті, а саме:

  •  вибираєте товар та оформляєте замовлення вказавши своє ім'я, поштову та електронну адреси.
  •  перед остаточним підтвердженням замовлення перевірте вказану інформацію, телефон та ел.адресу для зв’язку.
  •  після цього, в підтвердження вище переліченого необхідно  підтвердити замовлення натиснувши кнопку в кінці сторінки листа.

Реєстрація.  З метою спрощення процесу оформлення замовлення в Інтернет-магазині, пропонується зареєструватися (при умові сплати за замовлений товар за допомогою пластикової картки; всі поля є обов'язкові для реєстрації) або авторизуватися ввівши свій логін і пароль, якщо ви вже є зареєстрованим користувачем сайту nashformat.com.ua.

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

В разі відсутності замовленого товару, Інтернет-магазин nashformat.com.ua може повідомити про появу даного товару на складі на електронну адресу (якщо ви є зареєстрованим користувачем).

Гарантії адміністрації інтернет-магазину. Інтернет-магазин nashformat.com.ua надає послуги з продажу товарів на території України та за її межами. Кожен клієнт магазину має право вимагати якісного, точного і швидкого виконання замовлення.

Терміни та вартість доставки замовленого товару. Термін постачання узгоджується з замовником.  Доставка по  Україні та по Києву – здійснюється звичайною поштою. В Києві можна замовити товари з доставкою кур’єром та сплатити за них при отриманні.

       Конфіденційність інформації користувача. Будь-яка інформація, отримана від клієнта, використовується виключно для внутрішніх цілей Інтернет-магазину nashformat.com.ua з кінцевою метою поліпшення обслуговування відвідувачів сайту. Ця інформація не передається третім особам, більш того, Інтернет-магазин nashformat.com.ua приймає всі необхідні заходи для захисту персональних даних.

Відповідальність Інтернет-магазину. Інтернет-магазин не тестує продукцію на предмет її сумісності з якими-небудь конкретними пристроями, системами і так далі, придатності її до роботи в яких-небудь специфічних умовах і так далі. Інтернет-магазин не відповідає за які-небудь збитки клієнта, прямі або непрямі. Розміри компенсації клієнтові з боку Інтернет-магазину nashformat.com.ua ні за яких обставин не можуть перевищувати вартості сплаченого товару.

Чи зможу я повернути неякісний товар? Якісний компакт диск можна повернути лише за умови, що його оригінальна упаковка не пошкоджена, тобто компакт-диск не було відкрито. Це загально прийнята практика, яка закріплена Постановою Кабінету Міністрів України №172-94-п (редакція від 13.12.2004). В іншому випадку нечесні покупці мали б змогу зробити копію компакт-диску, а потім повернути товар продавцю и вимагати назад свої гроші.

Спори. Всі можливі спори сторони вирішують за домовленістю, з дотриманням претензійного ладу. В разі неможливості врегулювання спірних питань шляхом переговорів, спірні питання розглядуються в Господарському суді м. Києва.  

Форс-мажор. Інтернет-магазин звільняється від відповідальності за часткове або повне невиконання зобов'язань за договором, якщо це невиконання є наслідком обставин непереборної сили (пожежа, повінь, землетрус, військові дії, дії і нормативні вказівки державних органів), що мають обов'язкову силу для Інтернет-магазину nashformat.com.ua, які виникли після заключення договору, за умови, що дані обставини безпосередньо вплинули на виконання Компанією своїх обов`язків [27].

2.3.2 Запоріжський Інтернет-магазин домашньої електроніки

Мобільні телефони, комп'ютерна техніка, теле-аудіо-відео, побутова техніка все це в Інтернет - магазині www.technomir.zp.ua - оплата готівкою, покупка в кредит, безкоштовна доставка по місту в найкоротші терміни за адресою вказаному в замовленні. Надається гарантія від 1 року до 7 років, залежно від сервісної політики виробника. Товар, що реалізовується, сертифікований і обслуговується тільки у фірмових сервіс-центрах. Відправлення заявки здійснюється на електронну адресу technomir@mail.zp.ua. Інтернет-магазин  регулярно надсилає оновлені прайси магазину постійним клієнтам [28].

Рис.2.2. Запоріжський Інтернет-магазин домашньої електроніки

2.3.3 Львівський Інтернет-магазин «Ярст»

Рис. 2.3. Львівський Інтернет-магазин «Ярст»

Інтернет-магазин «Ярст» - http://www.yarst-dodomu.com.ua/index.php -  здійснює продаж товарів по всій території України. В електронному магазині приймаються всі види оплати. На весь товар надається гарантія.
Можна придбати техніку на всі смаки. На сьогоднішній день здійснює роздрібну продажу техніки ведучих світових виробників:
Samsung, Sony, LG, Philips та ін. Товарний асортимент постійно розширюється [29].

2.3.4 Рівненський Інтернет-магазин «Сайтег»

Рис. 2.4. Рівненський Інтернет-магазин «Сайтег»

ТОВ «Сайтег» - це зареєстрована організація, об'єднуюча в собі професіоналів своєї справи. Така організація існує на законних підставах і несе відповідальність за свою роботу за заздалегідь підготовленим договором. ТОВ «Сайтег» надає послуги з модернізації комп'ютерної техніки. Гарантує найвищу якість і максимально доступні ціни. Варіанти конфігурацій можна вибрати автоматично (знаходяться під головним горизонтальним меню) або власноручно скласти конфігурацію. Замовлення доставляються в перебігу декількох робочих днів після підтвердження. У описі кожної конкретної моделі товару вказаний термін гарантійного обслуговування, яке забезпечується магазином або ж безпосередньо сервісними центрами виробників. Працездатність товарів перевіряється співробітниками. ТОВ «Сайтег» займається оптовим і роздрібним продажем комп'ютерів, що їх комплектують. Компанія успішно працює у різних напрямах, і це дозволяє ставити найнижчі ціни на продукцію світових брендів. ТОВ «Сайтег» пропонує широкий спектр послуг для споживачів комп'ютерного устаткування і офісної техніки. Нижче перерахований список послуг з сервісного обслуговування, які надає ТОВ «Сайтег»:

  •  гарантійне і післягарантійне обслуговування, ремонт комп'ютерів всіх модифікацій;
  •  ремонт відеоадаптерів і материнських плат;
  •  ремонт мобільних комп'ютерів notebook всіх модифікацій;
  •  проектування, прокладка і модернізація локальних мереж;
  •  ремонт моніторів всіх видів;
  •  обслуговування і ремонт всіх видів периферійних пристроїв - принтерів, сканерів, джойстиків, мультимедійних колонок і т.д.;
  •  гарантійний і післягарантійний ремонт модемів;
  •  установка і настройка МІНІ-АТС;
  •  ремонт джерел безперебійного живлення;
  •  ремонт і обслуговування копіювальних апаратів;
  •  ремонт акустики, DVD апаратури;
  •  заправка копіювальних апаратів;
  •  заправка і регенерація картриджів;
  •  консультації по будь-яких спеціалізованих питаннях [30].

2.3.5. Рівненський Інтернет-магазин «Ентер»

Інтернет-магазин «Ентер» - http://www.enter.rv.ua – пропонує [31]:

  •  широкий вибір ноутбуків та кишенькових комп`ютерів - від самих популярних недорогих моделей до професійного рівня;
  •  широкий вибір офісної і комп`ютерної техніки - від самих популярних недорогих моделей для домашніх користувачів до серверних станцій. В асортименті покупець знайде найрізноманітніші комплектуючі необхідні для модернізації і розширення можливостей комп`ютерів більшості виробників.
  •  широкий вибір фото-відео техніки - від самих популярних та недорогих моделей для домашнього використання до продукції для професіоналів.
  •  автоматизують ручну працю менеджерів і бухгалтерії - вибудовують й автоматизують документообіг, бухгалтерський, складський і управлінський облік на базі «1С». Займаєються продажем, встановленням і налаштуванням систем програм 1С:Підприємство 7.7 і 1С:Підприємство 8.0. Фірма надає повний комплекс послуг з впровадження програм 1С Підприємство, їх подальше обслуговування і оновлення конфігурацій 1С та звітів. Пропонують абонентське обслуговування програм 1С:Підприємство, яке включає в себе оновлення релізів програм 1С:Підприємство і конфігурацій, оновлення щоквартальних форм звітності (регламентовані звіти 1С).
  •  повний спектр послуг в області створення WEB - додатків (сайтів, розміщення, технічна підтримка, навчання) а також модернізацією існуючих WEB - додатків . Розробка проводиться на основі таких технологій як HTML, PHP, MySql, Java, Java-script.
  •  повний спектр послуг в області створення локальних комп`ютерних мереж і структурованих кабельних систем. Постачають весь спектр активного мережевого обладнання виробництва компаній D-Link, Zyxel, 3Com, Cisco та ін.
  •  створюють комп`ютери і високопродуктивні серверні системи під будь-які задачі. Дворічна гарантія і сервісні контракти позбавляють від зайвих проблем з устаткуванням протягом усього терміну його експлуатації. Сервери фірми відрізняє висока продуктивність, бездоганна якість, надійність і доступні ціни. Проектування, зібрання і тестування серверного обладнання виконується спеціалістами найвищого класу.


Рис.2.5. Рівненський Інтернет-магазин «Ентер»

2.3.6. Рівненський Інтернет-магазин «КТС»

Рис.2.6. Рівненський Інтернет-магазин «КТС»

Інтернет-магазин «КТС» - http://ktc.rv.ua – пропонує: комп’ютери, комплектуючі, аксесуари та периферію; ремонт та обслуговування комп’ютерної техніки; серверні апаратні та програмні рішення;  створення та обслуговування локальних мереж та інше [32].

РОЗДІЛ ІІІ

МАРКЕТИНГОВЕ ДОСЛІДЖЕННЯ ТА ЕКОНОМІЧНІ ПЕРЕДУМОВИ РОЗРОБКИ ІНТЕРНЕТ-МАГАЗИНУ

3.1. Маркетингове дослідження Інтернет-магазину

Перед нами було поставлено одне з основних питань: «Чому покупці, що займаються шопінгом в Інтернет - магазинах, віддають перевагу їм над магазинами традиційним?» [33].

Виявляється головною перевагою є істотна економія часу. Дві третини Інтернет - покупців (61%) дали саме таку відповідь. Кожен другий користувач Інтернету (51%) також сказав, що його спокушає доставка товару додому. Ще 47% відзначили, що в мережевих супермаркетах іноді можна знайти товар, якого не зустрінеш в традиційних магазинах. Трохи більше третина респондентів (37%) намагається економити, купуючи товари в мережі, оскільки ціни в Інтернет - магазинах нижчі.

Такі дані були отримані в рамках дослідження аудиторії Інтернет - магазинів, проведеного дослідницьким холдингом ROMIR Monitoring в першому кварталі поточного року. Всього було опитано 2426 покупців і відвідувачів сайтів Інтернет - магазинів у віці від 14 років і старше.

Діаграма 3.1. Результати опитування користувачів Інтернету

Згідно з результатами дослідження, респонденти, які регулярно роблять покупки в Інтернет - магазинах, більшою мірою цінують цей вид шопінга із-за економії часу (71%), можливості замовлення доставки товару додому (63%), ширшого асортименту (51%) і конкурентність цін в порівнянні із звичайними магазинами (45%). Тоді як респонденти, які нічого не купують в Інтернет - магазинах, а просто відвідують їх сайти, цінують Інтернет - магазини за широту інформації, що надається про товар, - про це заявили 47% опитаних, що декілька вище, ніж по вибірці в цілому.

Дослідження також показало, що чинники економії часу і доставка товарів додому є більш значущими і привабливими, чим для респондентів з регіонів. На ці ж переваги Інтернет - магазинів перед традиційними декілька частіше указували користувачі Інтернету з високим рівнем доходу. А Інтернет - молодь до 24 років понад усе в мережевих магазинах цінує наявність в них товарів, які в інших магазинах не знайдеш.

В рамках дослідження респондентам також було запропоновано назвати недоліки Інтернет - магазинів. Були отримані наступні дані. Третина респондентів (36%) відповіли, що, не дивлячись на надання докладної інформації про товар, в Інтернет - магазині його не можна побачити в живу, ні відчути. Ще третина респондентів (31%) нарекли на трудності в доставці товарів додому. Причому декілька частіше, ніж по вибірці в цілому про це говорили Інтернет - покупці з регіонів. 17% респондентів відповіли, що не завжди можна знайти все, що необхідно - доводиться йти в звичайні магазини. А ще 13% відзначили, що процес покупки через Інтернет віднімає дуже багато часу. Покупці з регіонів також декілька частіше, говорили про цей недолік Інтернет - магазинів.

Інтернет-торгівля істотно відрізняється від звичайного торгового процесу і має свої особливості: у електронному магазині немає прямого спілкування покупця з продавцем. Відмінності між звичайною і Інтернет- торгівлею стосуються не тільки безпосередньо самого процесу продажу, але і всього того, що відбувається до і після нього. Перш за все це стосується процесу залучення покупця і дії на його рішення зробити покупку, а також зворотному зв'язку магазина з покупцем. Тому Інтернет - магазинам властиві відмінні від звичайних магазинів переваги та недоліки з погляду споживачів.

Відношення до покупок через Інтернет.  Опитування в Інтернет показало, що в цілому більшість відвідувачів позитивно настроєна відносно здійснення покупок через Інтернет [14,24-26].

Діаграма 3.2. Відношення до покупок через Інтернет

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

Опитування через Інтернет показало, що важливою причиною низького інтересу користувачів до покупок через Інтернет є:

  •  незвичність такої послуги (67% респондентів);
  •  відсутність безпеки платежів (38% респондентів).

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

Інша причина небажання зв'язуватися з Інтернет - магазинами полягає в тому, що процес покупки відбувається анонімно, немає прямого спілкування між покупцем і продавцем, тому у разі якихось проблем, що виникли в процесі покупки або експлуатації товару, покупець не бачить гарантій того, що ці проблеми магазин зможе вирішити. Люди не наважуються купувати в електронних магазинах, напевно із-за стереотипів, що сформувалися у них, що їх неодмінно обдурять: не вишлють замовлений і оплачений товар.

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

Як правило, якщо, зробивши покупку в Інтернет, покупець залишився задоволений отриманим товаром і послугами магазину, він стає постійним клієнтом цього магазину, тобто надалі він не шукає новий магазин, а відвідує той, в якому раніше вже був.

Також важливим чинником є формування запам’ятовуваного бренду, який забезпечуватиме високий рівень відвідуваності Інтернет-магазину, що запам'ятовується. Більшість споживачів відвідують Інтернет - магазини, назви яких вони пам'ятають (по рекламі, порадам знайомих).

Частота здійснення покупок через Інтернет. Частота покупок товарів через Інтернет безпосередньо пов'язана з тим асортиментом, який пропонують магазини, а також із специфікою товарів, які мають попит [25].

За даними сайту www.e-commerce.ru найбільший попит в Інтернет мають товари, споживчі якості яких не викликають сумніви або вже перевірені покупцем. До цієї категорії товарів відносяться книги, відео- і аудіо продукція, CD, DVD. По даним "Експерт РА" (www.raexpert.ru) на книги, відео і CD доводиться більше 78% всіх операцій, що укладаються. Відповідно товари, про якість яких можна судити тільки після покупки, мають менший попит. До таких товарів відносяться: одяг, дорога техніка, меблі, автомобілі, фрукти, швидкопсувні продукти і ювелірні прикраси, тобто це категорії товарів, які необхідно оцінювати при особистому контакті.

Результати опитування через Інтернет показують, що покупки типового користувача мережі здійснюються до 10 разів на рік або рідше, ніж раз на рік.

Діаграма 2. Частота здійснення покупок через Інтернет.

Причинами такої низької частоти покупок є [23,24-26]:

По-перше, особливості пропонованого магазинами асортименту товарів: мало хто із споживачів набуває книг, дисків, CD і DVD хоч би кожного тижня навіть в традиційних магазинах. Що стосується продуктів споживання, які купуються щодня, вони мають попит в Інтернет тільки в тих містах, де є представництво Інтернет-магазинів, оскільки такі товари повинні доставлятися в перебігу декількох годинників.

По-друге, активний розвиток електронної комерції стримується малою кількістю Інтернет - користувачів. Їх, у свою чергу, мало через відсутність інфраструктури (немає якісних телефонних ліній і провайдерів), немає поширеності суспільного Інтернету (у школах, університетах, Інтернет - кафе і так далі). Також стримує відсутність культури покупок через мережу (немодно, незрозуміло, невідомо, небезпечно) і мікроскопічні доходи (багато людей не можуть дозволити собі купити комп'ютер і підключитися до мережі).

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

По-четверте, як з'ясувалося в ході опитування обмежувальними чинниками служать:

  •  обмежений і дорогий Інтернет;
  •  обмежені фінансові можливості.

Таким чином, для деяких користувачів мережі, які готові зробити покупку в Інтернет, перешкодою є недостатня платоспроможність.

3.2 Витрати по створенню і розміщенню Інтернет-магазину 

в мережі Інтернет

Оскільки за основу береться безкоштовна версія програмного продукту Oscommerce, у витратну частину створення Інтернет-магазину відносяться такі витрати як: витрати по електроенергії, витрати по розміщенню магазина в мережі Інтернет (хостинг), заробітна плата програмістові і кур'єрові і інші витрати на канцелярські товари і витратні матеріали для комп'ютера. Такі витрати як оренда приміщення, амортизація комп'ютера і оргтехніки і інші витрати відносяться до основного магазину [4].

Таблиця 3.1 Розрахунок електроенергії
для дев'ятигодинного робочого дня

Назва

кількість

кВт/год

кВт в сутки (приблизно)

кВт в місяць

Комп’ютер

1

0,17

1,53

45,9

Освітлення

3

0,36

9,72

291,6

Спліт

1

0,7

6,3

189

Всього:

1,23

526,5

Для підприємств 1 кВт / год= 2,89

У місяць 2,89*526,5= 1521,6 грн.

У мережі Інтернет магазин планується розмістити на ресурсах провайдера, що забезпечить зручне обслуговування і рекламне посилання на магазин з головної сторінки сайту провайдера.

Заробітна плата програмістові  складає 2600 грн.

Таблиця 3.2 Розрахунок щомісячних витрат
на зміст Інтернет -магазину

Назва

Сума, грн.

Зарплата програміста

2600

Зарплата кур’єра

900

Транспортні витрати кур’єра

350

Електроенергія

450

Хостинг

400

Інтернет

115

Інші витрати

150

Разом:

4965

Rпост = 4965 грн- постійні щомісячні витрати.

Оскільки приміщення і устаткування вже є в наявності тоді розрахуємо річну суму амортизаційних відрахувань.

Річна  сума амортизаційних відрахувань розраховується по формулі:

де Ф- первинна вартість основних фондів по видах, грн.;

NA- норма амортизації по видах основних фондів, в %.

Річну  суму амортизаційних відрахувань відобразимо в таблиці.

Таблиця 3.3 Розрахунок річної суми
амортизаційних відрахувань

Елементи основних фондів.

Кількість

Вартість, грн.

Сума грн.

Норма амортизацій%

Амортизаційні відрахування грн.

Комп'ютер

1

4480

4480

20%

896

ПЗ

1

3040

3040

20%

608

Приміщення

13,6м2

864

11750,4

3%

352,5

РАЗОМ:

1856,5

Таким чином, річна  сума амортизаційних відрахувань складає 1856,5 грн.

Виходячи з того, що трудомісткість створення інформаційної системи складає 10 днів, розраховуємо амортизацію устаткування за цей період по формулі:

Розрахуємо  суму амортизаційних відрахувань для перерахованої групи устаткування з урахуванням числа календарних днів на розробку програмного забезпечення (Інтернет-магазину)  за формулою:

А =50,864 грн.

Заробітна плата програміста складає 2600 грн. Відповідно, витрати на заробітну плату програміста, що включаються в собівартість, з урахуванням роботи над програмою протягом 12 днів складуть:

де    Зппр - заробітна плата в місяць програміста, грн.;

Тфакт - число календарних днів на розробку Інтернет-магазину;

Д - число днів в періоді (місяць).

Зппр =  2600 грн.

Відрахування на соціальне страхування складуть:

ВСС = Зппр * 26%

ВСС = 676 грн.

Таблиця 3.4 Розрахунок щомісячних матеріальних витрат

Назва

Сума, грн/міс.

Електроенергія

234,456

Хостинг

48

Інтернет

64

Інші витрати

40

Разом:

386,456

Зм= 386,456  грн. в місяць

Отже, витрати на період розробки програмного продукту розрахуємо по формулі:

Зпр =2600 грн,

де    Зм - щомісячні витрати, грн.;

Тфакт - число календарних днів на розробку Інтернет - магазину;

Д - число днів в періоді (місяць).

Розрахуємо собівартість програмного продукту по формулі:

Сст - собівартість розробки програми

Сст = Зпр + Зм + ВСС + А

Сст = 2600+386,456 +676+50,864 = 3713,32 грн.

Дана собівартість є приблизною, оскільки в ній не враховані деякі деталі, які істотно не вплинуть на підсумок.

Виходячи з нормального рівня рентабельності 20% ми можемо визначити ціну розробленої нами програми:

      ,                      

де  Сст - собівартість розробки програми;

       R - планований рівень рентабельності.

Ц = 4455,97 грн.

Оскільки приміщення і устаткування вже є витрати на впровадження програмного продукту складуть 4455,97 грн.

Передбачається, що самоокуповування Інтернет-магазину при щомісячних витратах в 4965 грн відбудеться вже при збільшенні товарообігу на 15% і прибули на 6,5%.

П = (Тобн + Тобн* Тоб%)*П%,

де П - передбачуваний прибуток;

Тобн - базовий варіант товарообігу;

Тоб%- передбачуваний відсоток приросту товарообігу;

П% - передбачуваний приріст прибули.

П1= (32000+32000*15/100)*6,5/100 = 2392 грн.

Оскільки продажі програмного забезпечення в магазині складають приблизно 20% від загального товарообігу, відповідно самоокуповування магазина відбудеться при прирості товарообігу на 50% і прирості прибули на 25%.

П = (6400+6400*50/100)*25/100 = 2400 грн.

Тому для швидшої окупності Інтернет-магазину було вирішено до програмного забезпечення ввести додаткові товари.

Тому повна окупність Інтернет-магазину з урахуванням витрат на впровадження відбудеться за 2 місяці, після досягнення приросту товарообігу магазина на 20 % і  прибули на 8%.

П3 = (32000+32000*20/100)*8/100 = 3072 грн.

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


РОЗДІЛ ІV

РОЗРОБКА ІНТЕРНЕТ-МАГАЗИНУ
ТА ЙОГО ПРОГРАМНА РЕАЛІЗАЦІЯ

4.1 PHP

PHP (англ. PHP:Hypertext Preprocessor — PHP: гіпертекстовий препроцесор), попередньо: Personal Home Page Tools — скриптова мова програмування, була створена для генерації HTML-сторінок на стороні Web-серверу. PHP є однією з найпоширеніших мов, що використовуються у сфері Web -розробок (разом із Java, .NET, Perl, Python, Ruby). PHP підтримується переважною більшістю хостинг-провайдерів. Проект за яким був створений PHP - проект з відкритими програмними кодами [19,21].

PHP інтерпретується Web -сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконуються вже на стороні клієнта.

PHP - мова, яка може бути вбудованою безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (<?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?>).

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

Наявність інтерфейсів до багатьох баз даних :

  •  в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.
  •  через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard — ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.

Традиційність

Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP - мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Internet, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона знайшла таку популярність серед web-програмістів, що на даний момент є мало не найпопулярнішою мовою для створення web-додатків (скриптів).

Наявність вихідного коду та безкоштовність

Стратегія Open Source, і розповсюдження початкових текстів програм в масах, зробило поза сумнівом благотворний вплив на багато проектів, в першу чергу - Linux хоч і успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР. Ухвалення стратегії Open Source і безкоштовне розповсюдження початкових текстів РНР надало неоціниму послугу користувачам. Додатково, чуйне співтовариство користувачів РНР є свого роду колективною службою підтримки, і в популярних електронних конференціях можна знайти відповіді навіть на найскладніші питання.

Ефективність

Ефективність є виключно важливим чинником при програмуванні для розрахованих на багато користувачів середовищ, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретуючих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, що відкомпілювалися, працюватимуть значно швидше - в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних web-додатків.

Докладний опис мови

З точки зору системи типізації, PHP є мовою програмування з динамічною типізацією. Немає необхідності явного визначення типу змінних, хоча така можливість існує. В разі звернення до змінної, інтерпретатор PHP трактує її тип відповідно до контексту. За необхідності можливе приведення змінної до певного типу за допомогою відповідних конструкцій мови. Це може знадобитись, якщо зважити, що значення змінної можуть трактуватись по-різному в залежності від її типу. Також можливе визначення типу відповідної змінної на певному етапі виконання сценарію. Імена змінних чутливі до регістру символів.

До базових типів належать булеві дані, цілі та дійсні числа із плаваючою комою, а також стрічки. Булеві дані виражають істинність значення. Цілі числа можуть бути подані у вісімковому, десятковому та шістнадцятковому вигляді. Розмір цілого числа може змінюватись залежно від платформи, як правило, розрядність становить 32 біти. PHP не підтримує беззнакові цілі числа. Дійсні числа із плаваючою комою можуть бути подані в десятковій або експоненційній формі.

Робота з рядками

Стрічки розділяють на два класи - стрічки, що підлягають аналізу, та стрічки, що не підлягають аналізу. Перший клас досліджується інтерпретатором на наявність посилань на інші змінні і за умови їх наявності, відбувається підстановка значень у відповідне місце. Крім того, клас дозволяє проводити маніпуляції із керуючими символами. Символ стрічки може мати лише одне із 256 значень, але існує можливість працювати із багатобайтовими символами. Доступ до символів стрічки можливий з використанням синтаксису, схожого на доступ до елементів масивів.

PHP надає широкий спектр функцій для пошуку та заміни тексту в стрічках. Для цього використовують як традиційний підхід, так і спеціальний підхід, що базується на використанні регулярних виразів. При цьому в мові реалізована підтримка двох видів регулярних виразів — Perl-сумісні та POSIX-сумісні, що розрізняються за синтаксисом та особливостями роботи.

Змішані типи даних

До змішаних типів належать масиви та об'єкти. Масиви в сенсі мови є наборами змінних, що згруповані в єдину змінну. Вимога однотипності наповнення масивів не ставиться. Технічно, масиви являють собою впорядковані карти, що відображають ключові значення на позиції змінних даних. Вмістом значення, на яке вказує ключ може бути будь-чим, що можна подати у вигляді змінної. Не існує жодних обмежень, крім об'єму пам'яті, що накладаються на кількість ключів масиву.

Особливістю мови є відмова від рівномірного розподілу ключів масивів. Знайшла реалізацію і модель багатовимірних масивів, причому без явного обмеження глибини вкладеності. Корисною властивістю PHP є можливість асоціації масивів із функцією зворотного виклику. Ці функції дозволяють проводити дії над одним чи кількома масивами в пакетному режимі.

Також, існують два спеціальні типи даних — ресурс та NULL. Ресурс — спеціальна змінна, що містить посилання на зовнішній ресурс. Ресурси створюються та використовуються в спеціалізованих функціях. Оскільки тип містить спеціальні вказівники на відкриті файли, під’єднання та інше, то будь-які дії над значенням ресурсу не мають сенсу.

Область видимості змінної — середовище, в якій вона визначена. Розрізняють локальні та глобальні змінні. За замовчуванням, всі змінні мають локальний характер дії. Виділяють особливий тип змінних — статичні, що дозволяє повторне звернення до змінної в певному сегменті коду, причому змінна буде зберігати попередньо отримане значення. Існує також поняття суперглобальний змінних, які служать місцем збереження даних оточення або даних, отриманих ззовні. Підтримується концепція динамічних змінних та функцій.

Константи в PHP — ідентифікатори простих значень. Можливе визначення константи, причому після її оголошення стає неможливою зміна її значення чи анулювання. Константи можуть мати лише скалярні значення. Підтримується можливість отримання значення константи за динамічним ім'ям. Область видимості констант буде глобальною для сценарію та всіх під’єднаних компонентів. Також в ядрі мови визначено чимало системних констант.

Конструкції мови

Оператори в сенсі мови дозволяють виконувати відповідну дію над одним чи кількома операндами. Оператори бувають трьох типів — унарні, бінарні та тернарні. Оператори, як і в інших мовах характеризуються не лише дією, а й асоціативністю та пріоритетністю. Особливістю булевих операцій порівняння — розрізнення двох класів — з врахуванням типу і без врахування типу, при якому відбувається приведення до відповідного типу. Заокруглення відбуваються завжди в меншу сторону. В мові реалізовані особливі класи операторів — виконання, управління помилками та перевірки приналежності до класу.

Функції в сенсі мови є контейнерами коду, причому можливе поміщення інших функцій та класів. На цьому і базується можливість умовного визначення функції. В цьому випадку висувається вимога попередньої декларації викликаної функції, що не обов'язково в інших випадках. Можливості повторного визначення чи деактивації функції не існує. Результат, який повертає функція може мати будь-який тип.

В мові реалізована функціональність посилань. Можливо створити скільки завгодно псевдонімів, що посилаються на єдиний сегмент даних. При вивільненні будь-якого з псевдонімів, сегмент даних залишається в пам'яті до моменту завершення сценарію або вивільнення усіх посилань.

Що стосується функцій в PHP, то замість прийнятого в багатьох мовах принципу перевантаження функцій, що дозволяє змінити хід виконання певної функції в залежності від типу та кількості переданих параметрів, використовується метод динамічних аргументів. Це дає змогу не визначати кількість параметрів для функцій при їх оголошенні, а працювати із тими аргументами, які були отримані на момент виклику функції. У тілі функції можливо отримати кількість переданих їй аргументів і проводити відповідні маніпуляції. При оголошенні функції звичайним чином, можливе задання значень аргументів за замовчуванням. Функції можуть повертати лише одне значення, проте це обмеження можна оминути, використавши не лише масиви, а й посилання. Передача аргументів за посиланням неможлива під час виконання та оголошення функції.

Після виконання сценаріїв, простір пам'яті, займаної ними очищується збирачем сміття. Проте, за необхідності можливе виконання очищення пам'яті від надлишкових сегментів даних під час виконання скриптів. Використання функцій очищення пам'яті є невиправданим, хоча така можливість існує.

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

Додаткові можливості

Мова явно підтримує HTTP cookies відповідно до специфікацій Netscape. Це дозволяє проводити встановлення та читання невеликих сегментів даних на стороні клієнта.

PHP надає можливість організації роботи з користувачем протягом сеансів (сесій). В сесії можна зберігати різні дані, включаючи об'єкти.

Ліцензія

Ліцензія PHP має назву The PHP License version 3.0, ЧАП по цій ліцензії та її текст можна знайти на офіційному сайті The PHP Group, а також файл із ліцензією містить дистрибутив PHP (звичайно license.txt).

Історія. Перші версії

Історія PHP починається з 1995 року, коли Расмус Лердорф (Rasmus Lerdorf) створив простий додаток на мові Perl, що аналізує відвідини користувачами його резюме на Web-сайті. Потім, коли цим додатком вже користувалися декілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Personal Home Page Tools версія 1 і виставив для вільного скачування. З цієї миті почався небувалий зліт популярності PHP.

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

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

Закінчивши роботу Зів і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group - група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з’явився на світ у 1998 році під назвою PHP 3.

При цьому головна особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезним кількість баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок по вивченню PHP.

Відразу ж після виходу PHP 3, Енді Гутманс і Зів Сураські почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними ідеями що реалізовані є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.

Визнання та поширення

PHP 4, що працює на цьому ядрі, вийшов в 2000 році. На додаток до поліпшення продуктивності, PHP 4 мав нові можливості по підтримці сесій, буферизацію виводу, безпечні способи обробки інформації, що вводиться користувачем, і нові мовні конструкції. З виходом 4 версії PHP став використовуватися вже на більш ніж 20% доменів Інтернету.

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

У липні 2004 року виходить офіційний реліз PHP 5. В першу чергу, як і планувалося, було перероблено весь механізм роботи з об'єктами. І якщо в попередніх версіях об'єктно-орієнтоване програмування на PHP було можливе в мінімальному ступені, із-за чого і використовувалося на практиці не часто, то PHP 5 володіє прекрасним потенціалом реалізації об'єктного програмування. Окрім цього, PHP збагатився рядом цінних розширень для роботи з XML, різними джерелами даних, генерації графіки і інше.

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

Всі основні бібліотеки для роботи з XML, запозичені в PHP 4, були піддані серйозній переробці. Такі популярні розширення, як SAX, DOM і XSLT, тепер використовують інструмент libxml2, що робить їх ще ефективнішими.

У PHP 5 також включені два нові модулі для роботи з протоколами - SimpleXML і SOAP. SimpleXML дозволяє значно спростити роботу з XML-даними, представляючи вміст XML-документа у вигляді PHP-об'єкту. Розширення SOAP дозволяє будувати на PHP сценарії, що обмінюються інформацією з іншими додатками за допомогою XML-повідомлень поверх існуючих веб-протоколів, наприклад HTTP. Модуль для роботи з SOAP для PHP 5 надає розробникам засіб для достатньо швидкого створення ефективних SOAP-клієнтів і SOAP-серверів.

Новий модуль PHP 5 MySQLi (MySQL Improved) призначений для роботи з MySQL-сервером версій 4.1.2 і вище, реалізовуючи не тільки процедурний, але і об'єктно-орієнтований інтерфейс до MySQL. Додаткові можливості цього модуля включають — SSL, контроль транзакцій, підтримка реплікації і ін. Очевидно, що, на цьому історія PHP не закінчується. Слід очікувати наступних версій мови із розширеними можливостями.

Базовий синтаксис

Відокремлення PHP коду від HTML розмітки

Всі сценарії оформляються у вигляді блоків коду. Ці блоки можуть бути поміщенні в HTML-код, але відділені від нього відповідними обмежувачами. Код PHP в HTML повинен знаходитись між початковим тегом

<?php та кінцевим ?> (або між <script language="php"> та </script>)

Бажаним варіантом виділення PHP коду є варіант <?php ?>, оскільки саме такі початковий та кінцевий теги дозволять використовувати PHP код в документах, які відповідають правилам XML. Також можна користуватися скороченим записом: <?  ?> (в php.ini змінна short_open_tag повинна мати значення On) і записом в стилі ASP: <%  %> (в php.ini змінна asp_tags повинна мати значення On). Проте стиль ASP не рекомендується і очікується, що він буде відсутній у PHP6.

Відокремлення інструкцій

Інструкції в PHP відокремлюються символом ;. Перед закінченням скрипту (перед тегом ?>) крапку з комою ставити необов'язково.

Коментарі

Коментарі в PHP можуть бути як однорядкові так і багаторядкові. Однорядкові коментарі починаються із // або # . Багаторядкові коментарі починаються символами /* і закінчуються */ . Слід зауважити, що однорядкові коментарі йдуть або до кінця текучого рядка або до закриваючого тега ?>

Змінні

Основою будь-якого програмування є змінні. Існує три стилі оформлення змінних у PHP:

  •  Короткий стиль: $variable Використовується в більшості випадків. Змінна, яка створюється програмним кодом, записується таким чином. Можливо також використання такого стилю для добування змінної із ФОРМИ, якщо ввімкнено register_globals у файлі конфігурації php.ini.
  •  Середній стиль: $_POST['varaible'], $_GET['variable']', $_REQUEST['variable'] Використовується для отримання даних з полей ФОРМИ. В залежності від типу передачі даних, встановлюється POST або GET або REQUEST для обох випадків.
  •  Довгий стиль:

$HTTP_POST_VARS['variable'],$HTTP_GET_VARS['variable'] Найбільш повний стиль запису, найменш використаний. У майбутньому буде вважатись застарілим, отже, небажаний.

Змінні, які обумовлюються користувачем, записуються у вигляді: $variable = 0.00;, $variable1 = 'hello PHP-Master!' [19,21,24-26].

4.2 MySQL

MySQL  — вільна система управління базами даних (СУБД). MySQL є власністю компанії Sun Microsystems, здійснюючу розробку й підтримку додатка. Поширюється під GNU General Public License і під власною комерційною ліцензією, на вибір. Крім цього компанія MySQL AB розробляє функціональність за замовленням ліцензійних користувачів, саме завдяки такому замовленню майже в самих ранніх версіях з'явився механізм реплікацій [19,21].

MySQL є рішенням для малих і середніх додатків. Входить в LAMP. Звичайно MySQL використовується як сервер, до якого звертаються локальні або вилучені клієнти, однак у дистрибутив входить бібліотека внутрішнього сервера, що дозволяє включати MySQL в автономні програми.

Гнучкість СУБД MySQL забезпечується підтримкою великої кількості типів таблиць: користувачі можуть вибрати як таблиці типу MyISAM, підтримуючий повнотекстовий пошук, так і таблиці InnoDB, підтримуючі транзакції на рівні окремих записів. Більше того, СУБД MySQL поставляється зі спеціальним типом таблиць EXAMPLE, що демонструють принципи створення нових типів таблиць. Завдяки відкритій архітектурі й GPL-Ліцензуванню, у СУБД MySQL постійно з'являються нові типи таблиць.

26 лютого 2008 року Sun Microsystems придбала MySQL AB за $1 млрд.

Про походження MySQL

MySQL виникла як спроба застосувати mSQL до власних розробок компанії: таблицям, для яких використовувалися ISAM — підпрограми низького рівня. У результаті був вироблений новий SQL-SQL-інтерфейс, але API-API-інтерфейс залишився в спадщину від mSQL. Звідки відбувається назва «MySQL» — доподлинно не відомо. Розроблювачі дають два варіанти: або тому, що практично всі наробітки компанії починалися із префікса My, або на честь дівчинки по ім'ю My, дочки Майкла Монти Віденіуса, одного з розроблювачів системи.

Ліцензування

MySQL має подвійне ліцензування. MySQL може поширюватися відповідно до умов ліцензії GPL. Але за умовами GPL, якщо будь-яка програма вимагає MySQL, те вона теж повинна поширюватися по ліцензії GPL[6].Однак це може розходитися із планами розроблювачів, що не бажають відкривати вихідні тексти своїх програм. Для таких випадків передбачена комерційна ліцензія компанії MySQL AB, яка також забезпечує якісну сервісну підтримку.

Платформи

MySQL портирована на велику кількість платформ: AIX, BSDi, FreeBSD, HP-UX, GNU/Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Window 98, Windows NT, Windows 2000, Windows XP, Windows Server 2003 і Window Vista. Існує також порт MySQL до OpenVMS. Важливо відзначити, що компанія MySQL AB надає для вільного завантаження не тільки вихідні коди СУБД, але й відкомпільовані й оптимізовані під конкретні операційні системи готові виконуватися модулі, що, які можна завантажити із дзеркал, представлених на офіційному сайті.

Мови програмування

MySQL має API для мов C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk і Tcl, бібліотеки для мов платформи .NET, а також забезпечує підтримку для ODBC за допомогою ODBC-Драйвера MyODBC.

Застаріла версія

Незважаючи на те, що версія 4.0 є застарілої, вона усе ще має значне поширення. Основні можливості цієї версії:

  •  Практично повна реалізація ANSI SQL-99, плюс розширення;
  •  Міжплатформна сумісність;
  •  Незалежні механізми зберігання (MyISAM для швидкого читання, InnoDB для транзакцій і посилальної цілісності);
  •  Транзакції;
  •  Підтримка SSL;
  •  Кешировання запитів;
  •  Реплікація: один головний сервер на один підлеглого, багато підлеглих на один головного;
  •  Повнотекстова індексація й пошук з використанням механізму MyISAM;
  •  Впроваджена бібліотека бази даних;
  •  Підтримка Юнікода (UTF-8);
  •  Таблиці InnoDB забезпечують відповідність вимогам ACID;
  •  Убудований сервер, що дозволяє включати MySQL в автономні додатки.

MySQL4.1

Рекомендованою версією на 2005 год є MySQL 4.1 вийшла 27 жовтня 2004, Вона містить наступні нововведення:

  •  Вкладені запити й похідні таблиці;
  •  Нова система кодувань і сортувань;
  •  Більше швидкий і гнучкий протокол клієнт-сервер з підтримкою підготовлених запитів, що забезпечує їхнє оптимальне виконання;
  •  Нова програма установки й настроювання для Microsoft Windows і GNU/Linux;
  •  Захищені через OpenSSL з'єднання клієнт-сервер;
  •  Високо-оптимізована бібліотека, що може бути використана в сторонніх програмах;
  •  Повноцінна підтримка Юнікода ( UTF-8 і UCS2);
  •  Стандартні просторові типи даних GIS, для зберігання географічної інформації;
  •  Поліпшений повнотекстовий пошук і система допомоги.

MySQL5.0

В MySQL 5.0 значно розширена функціональність, що ставить MySQL в один ряд з комерційними СУБД. Якщо раніше СУБД MySQL обвинувачували в недостатній підтримці стандарту SQL, те з появою п'ятої версії цієї популярної бази даних, з'явилася практично повна підтримка стандарту SQL. MySQL 5.0 містить наступні нововведення:

  •  збережені процедури і функції;
  •  оброблювачі помилок;
  •  курсори;
  •  тригери;
  •  представлення;
  •  інформаційна схема (так званий системний словник).

MySQL5.1

Версія MySQL 5.1 продовжує шлях до стандарту SQL2003. MySQL 5.1 містить наступні нововведення:

  •  планувальник завдань;
  •  сегментування;
  •  змінено поводження ряду операторів, для забезпечення більшої сумісності зі стандартом SQL2003;
  •  значні зміни в роботі MySQL Cluster, такі, як, наприклад, можливість зберігання табличних даних на диску;
  •  row-based реплікація;
  •  реалізація парсера повнотекстового пошуку у вигляді plug-in.

MySQL6.0

Версія MySQL 6.0 поки перебуває в стадії альфа-тестування. Спочатку було ухвалене рішення про створення версії 5.2, однак незабаром ця версія була перейменована в 6.0.

Одне з найголовніших нововведень версії 6.0 — новий механізм зберігання даних Falcon, розроблений компанією MySQL AB, як потенційна заміна для InnoDB компанії InnoBase, придбаною компанією Oracle. Повний список змін можна побачити на офіційному сайті.

Локалізація

Починаючи з версії 4.1 у СУБД MySQL впроваджено нову систему кодувань і сортувань. Якщо ви використовуєте кодування cp1251, перед виконанням SQL-Інструкцій необхідно настроїти кодування з'єднання за допомогою операторів:

SET character_set_client='cp1251';

SET character_set_results='cp1251';

SET character_set_connection='cp1251';

Ці три оператори еквівалентні виклику одного оператора:

SET NAMES 'cp1251'

Змінна character_set_client установлює кодування даних відправляються від клієнта, змінна character_set_results установлює кодування даних змінна character відправляються, що клієнтові,,_set_connection установлює кодування, у яку перетвориться інформація яка прийшла від клієнта, перед виконанням запиту на сервері.

При використанні Юнікода UTF-8 цей оператор виглядає в такий спосіб:

SET NAMES 'utf8'

Основні можливості MySQL

Нижче представлений список найбільш важливих характеристик програмного забезпечення баз даних MySQL.

  •  Внутрішні характеристики.
  •  Написаний на мовах С и C++.
  •  Протестований на широкому спектрі різних компіляторів.
  •  Працює на безлічі різних платформ.
  •  Доступні API-Інтерфейси для З, C++, Eiffel, Java, Perl, PHP, Python, Ruby і Tel.
  •  Повністю багато поточний з використанням потоків ядра. Може працювати в  багатопроцесорних системах.
  •  Забезпечує транзакцію і не транзакцію механізми зберігання.
  •  Використовує дуже швидкі дискові таблиці (MylSAM) зі стиском індексів на основі бінарних дерев ( В-Дерев).
  •  Порівняно просте додавання іншого механізму зберігання. Це зручно, якщо потрібно додати SQL-Інтерфейс до бази даних власної розробки.
  •  Дуже швидка система розподілу пам'яті, заснована на потоках.
  •  Дуже швидкі з'єднання, що використовують оптимізовані однопрохідні мульти-з’єднання.
  •  Збережені в пам'яті хеш-таблиці, які використовуються як тимчасові таблиці.
  •  Функції SQL реалізовані з використанням високо оптимізованої бібліотеки класів і повинні виконуватися гранично швидко. Як правило, будь-якого розподілу пам'яті після ініціалізації запиту не виконується.
  •  Код MySQL протестованний за допомогою інструментів пошуку витоку пам'яті, як комерційних, так і з відкритим вихідним кодом.
  •  Сервер доступний як окрема програма для використання в клієнт-
    серверній мережному середовищу. Крім того, він також поставляється у вигляді бібліотеки, що може бути убудована в окремі автономні додатки. Такі додатки можуть застосовуватися в ізольованому середовищі або середовищі, що не має доступ до мережі.
  •  Типи стовпців
  •  Безліч типів даних для стовпців таблиць: знакові/беззнакові цілі
    довжиною в 1, 2, 3, 4 і 8 байт; типи
     FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE,  TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM і просторові типи OpenGIS.
  •  Запису фіксованої й змінної довжини.
  •  Оператори й функції.
  •  Повна підтримка операцій і функцій у конструкціях SELECT і WHERE запитів, наприклад: mysql> SELECT CONCAT(first_name, ' ', last_name) -> FROM citizen -> WHERE income/dependents > 10000 AND age > 30;
  •  Повна підтримка конструкцій GROUP BY і ORDER BY. Підтримка групових функцій (COUNT (), COUNT (DISTINCT . . .), AVG(), STD(), SUM(), MAX(), MIN() І GROUP_CONCAT()).
  •  Підтримка LEFT OUTER JOIN і RIGHT OUTER JOIN як із синтаксисом SQL, так і із синтаксисом ODBC.
  •  Підтримка псевдонімів для таблиць і стовпців, як того вимагає стандарт SQL.
  •  Оператори DELETE, insert, REPLACE і UPDATE повертають кількість рядків, які були змінені. Замість цього можна задати повернення кількості рядків, що відповідають запиту, для чого буде потрібно встановити відповідний прапор при підключенні до сервера.
  •  Специфічна для MySQL команда SHOW може бути використана для добування інформації про бази даних, таблицях і індексах. Команда
    EXPLAIN дозволяє переглянути, як оптимізатор виконує запит.
  •  Імена функцій не конфліктують з іменами таблиць і стовпців. Наприклад, ABS — абсолютно коректне ім'я стовпця. Єдине обмеження, що накладається на виклик функцій, - це те, що між ім'ям функції й наступної за ним відкриваючою дужкою ' (' не повинне бути пробілів.
  •  Можна змішувати таблиці з різних баз даних в одному запиті (як в MySQL 3.22).
  •  Безпека.
  •  Система, заснована на паролях і привілеях, є винятково гнучкою і безпечною й дозволяє організувати верифікацію засобами хоста. Паролі захищені, оскільки весь трафік паролів під час з'єднання із сервером шифрується.
  •  Масштабованість і обмеження.
  •  Підтримує роботу баз даних величезних обсягів. Наприклад, компанія
    MySQL AB застосовує сервер MySQL для обслуговування бази даних, утримуючих 50 мільйонів записів. Відома також організація, що використовує сервер MySQL для обслуговування бази даних з 60 000 таблиць, що зберігає близько 5 мільярдів записів.
  •  Дозволяється мати до 64 індексів на таблицю (у версіях, що передують  MySQL 4.1.2, допускалося до 32 індексів). Кожний індекс може містити від 1 до 16 стовпців або частин стовпців. Максимальна ширина індексу становить 1000 байт (500 байт у версіях, що передують MySQL 4.1.2). Для індексу може застосовуватися префікс стовпців з типами CHAR, VARCHAR, BLOB і TEXT.
  •  Мережна зв’язність
  •  Клієнти можуть підключатися до сервера MySQL, використовуючи сокети TCP/IP на будь-якій платформі. В Windows-Системах сімейства NT (NT, 2000 або ХР) клієнти можуть підключатися з використанням іменованих каналів. У системах на базі UNIX клієнти можуть підключатися через файли сокетів UNIX-Доменів.
  •  Інтерфейс Connector/ODBC дозволяє MySQL підтримувати клієнтські програми, які використовують ODBC-З'єднання. Наприклад, для підключення  до сервера MySQL можна використовувати MS Access. Клієнтське програмне забезпечення може виконуватися під керуванням Windows або UNIX. Вихідні тексти інтерфейсу Connector/ODBC доступні. Підтримуються всі  функції ODBC 2.5, так само як і безліч інших.
  •  Інтерфейс Connector/JDBC дозволяє MySQL взаємодіяти із клієнтськими програмами на Java, у яких використовуються JDBC-Підключення. Клієнтське програмне забезпечення може виконуватися під керуванням Windows або UNIX. Вихідні тексти інтерфейсу Connector/JDBC доступні.
  •  Локалізація
  •  Сервер може видавати клієнтам повідомлення про помилки на різних мовах.
  •  Повністю підтримуються кілька кодових таблиць, включаючи latinl (ISO- 8859- 1), german, big5, ujis і інші. Наприклад, в іменах таблиць і стовпців дозволяється застосовувати скандинавські символи на зразок 'а', 'а' і 'б'. Починаючи з версії MySQL 4.1, також забезпечується підтримка Unicode.
  •  Всі дані зберігаються в обраному кодуванні. Всі порівняння стовпців з нормальними рядками чутливі до регістра.
  •  Сортування виконується відповідно до обраного кодування (за замовчуванням використовуються шведський набір). Під час запуску сервера MySQL це можна змінити. Як приклад досить зробленого сортування рекомендується звернути увагу на код сортування для чеської мови. Сервер  MySQL підтримує безліч різних кодувань, причому вони можуть бути зазначені як під час компіляції, так і під час виконання.
  •  Клієнти й інструменти.
  •  Сервер MySQL має убудовану підтримку SQL-Операторів для перевірки, оптимізації й відновлення таблиць. Ці оператори можна виконувати в  режимі командного рядка, використовуючи клієнтський додаток mysqlcheck. MySQL включає також myisamchk - дуже швидку утиліту командного рядка для реалізації тих же операцій над таблицями MylSAM.
  •  Всі програми MySQL можна запускати на виконання з опцією -help або -? для одержання швидкої підказки.

Переваги

Незалежність від конкретної СУБД. Незважаючи на наявність діалектів і розходжень у синтаксисі, здебільшого тексти SQL-Запитів, що містять DDL і DML, можуть бути досить легко перенесені з однієї СУБД в іншу. Існують системи, розроблювачі яких споконвічно заставлялися на застосування щонайменше декількох СУБД (наприклад: система електронного документообігу Documentum може працювати як з Oracle Database, так і з Microsoft SQL Server і IBM DB2).

Наявність стандартів.Наявність стандартів і набору тестів для виявлення сумісності й відповідності конкретної реалізації SQL загальноприйнятому стандарту тільки сприяє «стабілізації» мови.

Декларативність. За допомогою SQL програміст описує тільки те, які дані потрібно витягти або модифікувати. Те, яким образом це зробити вирішує СУБД безпосередньо при обробці SQL запиту.

Недоліки

Невідповідність реляційної моделі даних. Творець реляційної моделі даних Эдгар Кодд, Кристофер Дейт і їхні прихильники вказують на те, що SQL не є істинно реляционным мовою. Зокрема вони вказують на наступні проблеми SQL:

  •  Повторювані рядки
  •  Невизначені значення (nulls)
  •  Явна вказівка порядку колонок ліворуч праворуч
  •  Колонки без ім'я й імена, що дублюються, колонок
  •  Відсутність підтримки властивості «=»
  •  Використання покажчиків
  •  Висока надмірність

В опублікованому Кристофером Дейтом і Хью Дарвеном вони викладають принципи СУБД наступного покоління й пропонують мову Tutorial D, який є справді реляційним [19,21,24-26].

4.3 Організація діяльності Інтернет-магазину

Створення власного Інтернет - магазину зв'язане з масою проблем [23]:

По-перше, необхідно розробити даний проект.

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

Крім того, варто враховувати, що тут, так само як і в реальному житті існує вельми солідна конкуренція, тобто необхідно детально продумати стратегію своєї роботи, щоб отримати перемогу в цій конкурентній боротьбі.

Потрібно організувати швидку доставку замовлення покупцеві, що не так вже і просто зробити, особливо працюючи в мегаполісі і так далі.

Як бачимо, труднощів вистачає. Але нічого на цьому світі не буває просто так, і для того, щоб стати успішним підприємцем необхідно для початку не аби як потрудитися.

У наше століття швидко розвиваючих комп'ютерних технологій, комп'ютери стали незамінними атрибутами практично в кожному будинку, і вже звичайно в офісах, а тому даний вид бізнесу просто від початку приречений на успіх, але зусилля прикласти у будь-якому випадку доведеться. Крім того, постійно з'являються в даній області нововведення, що комплектуючі комп'ютерів оновлюються і удосконалюються, таким чином, ті люди, які своєчасно зорієнтувалися в цій ситуації, і відкрили власний бізнес, пов'язаний з торгівлею даним видом товарів, не помилилися. Але завжди потрібно прагнути до чогось більшого, до підкорення нових висот, саме таким шансом в даній конкретній ситуації і є створення Інтернет - магазину. Він відкриває величезні перспективи для підприємців всіх сфер діяльності і дає шанс розширення бізнесу і власного кар'єрного зростання.

Спробуємо визначити основні елементи, які нам необхідні для створення Інтернет-магазину:

  1.  Розробка функціонуючої структури Інтернет-магазину (визначення основних принципів роботи)
  2.  Розробка структури сайту і схем сторінок
  3.  Створення дизайн-макета
  4.  Підготовку прав на різні типи операцій на сайті для груп користувачів
  5.  Створення необхідної кількості розділів і інформаційних блоків
  6.  Розробку структури товарного каталога
  7.  Настройку експорту і імпорту даних
  8.  Узгодження необхідних характеристик товарів для порівняння і виводу
  9.  Настройка форм замовлення і зворотного зв'язку  
  10.  Обробка зображень, наповнення сайту.

Велику увагу при створенні Інтернет-магазину потрібно виділяти розробці інтерфейсу. Інтерфейс - в широкому сенсі - визначена стандартами межа між взаємодіючими незалежними об'єктами. Інтерфейс задає параметри, процедури і характеристики взаємодії об'єктів.

Інтерфейс користувача - елементи і компоненти програми, які здатні робити вплив на взаємодію користувача з програмним забезпеченням. Зокрема:

- засоби відображення інформації, інформація, що відображається, формати і коди;

- командні режими, мова користувач-інтерфейс;

- пристрої і технології введення даних;

- діалоги, взаємодія і транзакції між користувачем і комп'ютером;

- зворотний зв'язок з користувачем;

- підтримка ухвалення рішень в конкретній наочній області;

- порядок використання програми і документація на неї.

Є декілька простих правил, що дозволяють інтерфейсу магазину бути зрозумілим клієнтові [18].

 Чим простіше, тим краще. Це зовсім не означає, що повинен бути тільки текст і контактна інформація, але на сайті не повинно бути даремної інформації, шрифт повинен легко читатися. Графічні елементи повинні бути були чіткими, виразними і швидко завантажуватися. На сайті магазину неприпустимо використовувати анімацію і звук, які довго завантажуються і відволікають увагу покупця.

Людське око проглядає сторінки сайту зверху вниз. Найбільша увага зосереджується на верхній лівій частині сторінки. Тому у верхній частині сторінки сайту, як правило, розміщується найбільш важлива інформація: назва фірми, логотип, сама назва сайту і так далі. Чим простіше виконана верхня частина сторінки, тим легко запам'ятати назву сайту і саму фірму.

Типовою помилкою багатьох сайтів є нагромадження у верхній частині сторінки сайту авангардної і складної композиції з багатьох малюнків, серед яких ледве помітно розташовується назви фірми і назву сайту. В результаті людське око, скануючи дану частину сторінки сайту, не встигає розпізнати і запам'ятати потрібну інформацію. Відбувається перенасичення. Замість збільшення запам’ятованості, на таких сайтах, відбувається зниження запам’ятованості основних написів (малюнків) сайту, назви фірми і назва сайту.

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

Розподіл товарів по групах. Товари повинні бути розподілені по групах. Необхідно забезпечити можливість пошуку товарів по частині назви і опису.

Якісне оформлення замовлення. При оформленні замовлення покупець повинен ввести контактну інформацію, після перевірки даних клієнт повен отримати підтвердження про отримане замовлення.

Оплата. Розрахунок вартості і виведення цін повинні здійснюватися в національній валюті. Спосіб отримання замовлення клієнт повинен вибрати самостійно.

У електронному магазині можуть бути і інформаційні розділи:

- з даними про магазин (сфера діяльності, адреса, контактні телефони і так далі);

- новини магазину;

- статті (системи управління новинами і статтями надають можливість використовувати Інтернет-магазин як справжній інформаційний портал);

- інша корисна інформація.

Збільшенню відвідуваності Інтернет-магазина і кількості постійних клієнтів сприяє також наявність зворотного зв'язку адміністратора з клієнтами. Важливо, щоб адміністратори щонайшвидше і максимально повно відповідали на листи.

Зворотною, невидимою покупцеві, стороною Інтернет-магазину є система управління. Вхід в систему адміністрування здійснюється тільки після введення адміністратором логіна і пароля. Адміністратор має можливість повністю управляти вмістом Інтернет-магазину:

- додавати або видаляти товари, описи і фотографії до них, змінювати їх вартість, умови доставки товарів і рівень знижок;

- редагувати розділи магазина;

- редагувати контактну інформацію Інтернет-магазину;

- редагувати зміст заголовків і текстів листів, що відправляються покупцеві при реєстрації і покупці товару;

- проглядати історію замовлень і статистику покупців та інше.

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

Отже функціонуючу структуру Інтернет-магазину представимо наступним чином (Рис.4.1):

 

 

Рис.4.1. Функціонуюча структура Інтернет-магазину

Враховуючи описані в Розділі 1 та 2 загальні відомості про Інтернет-магазини, описані вище програмні засоби для реалізації Інтернет-магазинів було розроблено Web-сайт «Інтернет-магазин» з використанням мови РНР та розроблена функціонуюча база даних товарів Інтернет-магазину з використанням MySQL (лістинг програми див. Додатки).


Рис.4.2. Структура бази даних


База даних «Інтернет-магазину» складається з 11 таблиць (структуру бази даних можна переглянути на Рис.4.2):

  •  Товари;
  •  Групи товарів;
  •  Групи компаній;
  •  Замовлення;
  •  Замовлення товару;
  •  Замовник;
  •  Спосіб оплати;
  •  Міста;
  •  Виконавець;
  •  Малюнок товару;
  •  Користувачі.

З наведеної структури бази даних (Рис.4.2) видно, що всі таблиці пов’язані зв’язками один-до багатьох. Дана схема зв’язків забезпечує цілісність бази даних.

Структуру Web-сайту Інтернет-магазину представимо наступним чином:

Рис.4.3. Структура Web-сайту Інтернет-магазину

Із структури видно (Рис.4.3), що в Інтернет-магазині пропонується 2 робочих частини: адміністративна та клієнтська.

Адміністративна частина дозволяє адміністратору Інтернет-магазину (після входження в систему адміністрування) здійснювати редагування бази даних та внесення додаткових елементів (товарів) в базу даних. Клієнтська частина даної можливості немає, тобто доступ до ресурсів Інтернет-магазину закритий для загального огляду.

Клієнтська частина доступна всім користувачам і відвідувачам Інтернет-магазину. Дозволяє клієнтам здійснювати перегляд, пошук, вибір потрібного товару, який розміщений в різних групах. Це значно полегшує роботу користувача при пошуку певної інформації. Клієнт має змогу оформити замовлення товару, вибрати тип оплати та доставки товару.

4.4  Опис роботи Web-сайту «Інтернет-магазин»

 

4.4.1 Встановлення програмного забезпечення

  1.  Для того, щоб реально функціонував Інтернет-магазин, необхідно звернутись до служб, які надають відповідні послуги в Інтернет, де можна зареєструвати власний Інтернет-магазин.
  2.  Для встановлення демо-версії програми необхідно:
    1.  Відключити мережу Інтернет, якщо вона встановлена на вашому ПК;
    2.  Скопіювати папку WebServers в кореневий каталог диска С: ;
    3.  Запустити файл start.com на виконання;
    4.  Завантажити браузера та в URL-адресі ввести www.rave.com;
    5.  По закінченню перегляду Інтернет-магазину запустити на виконання файл stop.com.

4.4.2 Принцип роботи Інтернет-магазину

При завантаженні  Web-сайту «Інтернет-магазин» перед користувачем відкривається головна сторінка (Рис.4.4):

Рис.4.4 Головна сторінка Web-сайту «Інтернет-магазин»

На даній сторінці розміщені основні реквізити Інтернет-магазину, меню користувача (Рис.4.5), категорії товарів (Рис.4.6), та кількість вибраних товарів в кошику (Рис.4.7).

Рис.4.5. Меню користувача

Рис.4.6. Категорії товарів

Рис.4.7. Кошик користувача

Вхід в адміністративну частину сайту здійснюється при натисканні пункту ВХІД меню користувача. При цьому адміністратору пропонується пройти перевірку особистих даних (логіна і пароля) (Рис. 4.8). При вірному введенні даних в поля Login і Password відбувається входження в систему і перед адміністратором Інтернет-магазину відкривається вікно з наступними можливостями:

  •  перегляд вмісту товарів в базі (Рис.4.9);
  •  додавання нового товару в базу (Рис. 4.10);
  •  редагування існуючого товару в базі - при виборі опції РЕДАГУВАННЯ в режимі перегляду вмісту товарів в базі (Рис.4.11);

Рис. 4.8. Вхід в систему

Рис.4.9. Перегляд вмісту товарів в базі

Рис.4.10. Додавання нового товару в базу

Рис.4.11.Редагування існуючого товару в базі

  •  перегляд груп товарів та їх редагування (Рис.4.12);

Рис.4.12. Перегляд груп товарів

  •  Додавання нової групи товарів в базу (Рис.4.13);

Рис.4.13. Додавання нової групи товарів в базу

  •  перегляд компаній-виробників та їх редагування (Рис.4.14);

Рис.4.14. Перегляд компаній-виробників

  •  Додавання нової компанії-виробника (Рис.4.15);

Рис.4.15. Додавання нової компанії-виробника

  •  Перегляд існуючих форм отримання замовлення т(Рис.4.16);

Рис.4.16. Перегляд існуючих форм отримання замовлення

  •  Додавання нової форми отримання замовлення (Рис.4.17);

Рис.4.17. Додавання нової форми отримання замовлення

Для виходу з адміністративної частини в клієнтську на меню користувача необхідно натиснути кнопку ВИХІД.

Вхід в клієнтську частину здійснюється автоматично при завантаженні Інтернет-магазину. Користувач може здійснити пошук потрібного йому товару скориставшись КАТЕГОРІЯМИ, що значно пришвидшить його роботу. Вибравши потрібну категорію, перед користувачем відкривається вікно з переліком товарів та коротким описом про даний товар із вказанням його ціни (ціна всіх товарів вказана в національній валюті) (рис.4.18).

Рис.4.18. Перегляд відвідувачем переліку товарів в базі

Під кожним товаром знаходиться опція ДЕТАЛЬНІШЕ, при натисненні якої можна отримати більш повну інформацію про вибраний товар, а також покласти даний товар в кошик та здійснити повернення в перелік товарів вибравши опцію НАЗАД (Рис.4.19).

Рис.4.19 Занесення вибраного товару в кошик

Після проведеного огляду клієнт може переглянути вибрані товари в кошику і відредагувати дані якщо потрібно (Рис.4.20).

Рис.4.20. Перегляд вибраних товарів в кошику

Для оформлення замовлення, користувачу необхідно вибрати опцію ЗАМОВИТИ, після чого йому надається невелика за розміром форма для заповнення основних даних (Рис.4.21).

Рис.4.21. Оформлення замовлення

Після підтвердження замовлення в базі даних Інтернет-магазину відбувається автоматичне редагування даних, що відповідають вибраному клієнтом товару.


РОЗДІЛ V

ОХОРОНА ПРАЦІ

5.1. Правові та організаційні питання охорони праці

За Законом України «Про охорону праці» [12] в останній редакції 2004 року, охорона праці – це система правових, соціально-економічних, організаційно-технічних, санітарно-гігієнічних, лікувально-профілактичних заходів та засобів, спрямованих на збереження здоров’я і працездатності людини в процесі трудової діяльності. Дія цього Закону поширюється на всіх  юридичних  та  фізичних осіб,  які  відповідно  до  законодавства  використовують  найману працю, та на всіх працюючих.

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

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


5.2. Правила охорони праці під час експлуатації
електронно-обчислювальних машин

Правила охорони праці під час експлуатації електронно-обчислювальних машин поширюються на всі підприємства, установи, організації, юридичні особи, незалежно від форми власності, відомчої належності, видів діяльності та на фізичних осіб, які здійснюють розробку, виробництво та застосування електронно-обчислювальних машин і персональних комп’ютерів (далі – ЕОМ), у тому числі й на тих, які мають робочі місця, обладнані ЕОМ, або виконують обслуговування, ремонт та налагодження ЕОМ [10].

Загальні вимоги до виробничих приміщень.

Облаштування робочих місць, обладнаних відеотерміналами, повинно забезпечувати:

– належні умови освітлення приміщення і робочого місця, відсутність відблисків;

– оптимальні параметри мікроклімату;

– наявність шуму та вібрації;

– м’яке рентгенівське випромінювання;

– електромагнітне випромінювання;

– ультрафіолетове та інфрачервоне випромінювання;

– електростатичне поле між екраном і оператором;

Для всіх споруд і приміщень, в яких експлуатуються відеотермінали та ЕОМ, повинна бути визначена категорія з вибухопожежної і пожежної безпеки відповідно до ОНТП 24-86 «Определение категорий помещений  и  зданий  по  взрывопожарной  и пожарной опасности».

Виробничі приміщення, в яких розташовані ЕОМ, не повинні межувати з приміщеннями, де рівні шуму та вібрації перевищують норму (механічні цехи, майстерні тощо). Робочі місця з відеотерміналами або персональними ЕОМ у приміщеннях з джерелами шкідливих виробничих факторів повинні розміщуватися в ізольованих кабінах з обладнаним повітрообміном. Площу приміщень, в яких розташовують відеотермінали, визначають згідно з чинними нормативними документами з розрахунку на одне робоче місце, обладнане відеотерміналом: площа – не менше 6,0 м2, обсяг – не менше 20,0 м3, з урахуванням максимальної кількості осіб, які одночасно працюють у зміні [10].

Стіни, стеля, підлога приміщень, де розміщені ЕОМ, повинні виготовлятися з матеріалів, дозволених для оздоблення приміщень органами державного санітарно–епідеміологічного нагляду.

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

Підлога всієї зони обслуговування, ремонту та налагодження ЕОМ, вузлів та блоків ЕОМ має бути вкрита діелектричними килимками, термін використання яких після їх випробування на електричну міцність не закінчився, або викладена ізолювальними підстилками (шириною не менше ніж 0,75-0,8 м) для ніг.

Приміщення комп’ютерних класів (залів), в яких проводиться навчання на ЕОМ повинні мати суміжне приміщення (лаборантську) площею не менше
18 м
2 з двома входами: в учбове приміщення та в коридор (на сходову клітку).

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

У приміщеннях з ЕОМ слід щоденно проводити вологе прибирання. У приміщеннях з ЕОМ повинні бути медичні аптечки першої допомоги.

Приміщення, в яких розміщуються ЕОМ типу ЕС, СМ та інші великі ЕОМ загального призначення, обладнуються системою автоматичної пожежної сигналізації та засобами пожежегасіння відповідно до вимог Переліку однотипних за призначенням об'єктів, які підлягають обладнанню автоматичними установками пожежегасіння та пожежної сигналізації, СНиП 2.04.09-84, СН 512-78, Правил пожежної безпеки в Україні та вимог нормативно-технічної та експлуатаційної документації заводу-виробника. Підходи до засобів пожежегасіння повинні бути вільними.


Санітарно–гігієнічні вимоги
.

Умови праці осіб, які працюють з ЕОМ, повинні відповідати І або II класу згідно з Гігієнічною класифікацією праці за показниками шкідливості та небезпечності факторів виробничого середовища, важкості та напруженості трудового процесу № 4137–86, затвердженою МОЗ України 12.08.86.

Вимоги до освітлення.

Приміщення з ЕОМ повинні мати природне і штучне освітлення відповідно до СНиП СНиП ІІ–4–79 «Природне та штучне освітлення». Природне світло повинно проникати через бічні світло прорізи, зорієнтовані, як правило, на північ чи північний схід, і забезпечувати коефіцієнт природної освітленості (КПО) не нижче 1,5%. Розрахунки КПО проводяться відповідно до СНиП11–4–79. Вікна приміщень з відео терміналами повинні мати регулювальні пристрої для відкривання, а також жалюзі, штори, зовнішні козирки тощо.

Штучне освітлення приміщення з робочими місцями, обладнаними відеотерміналами ЕОМ загального та персонального користування, має бути обладнане системою загального рівномірного освітлення. У виробничих та адміністративно–громадських приміщеннях, де переважають роботи з документами, допускається вживати систему комбінованого освітлення (додатково до загального освітлення встановлюються світильники місцевого освітлення). Відношення яскравості екрану комп’ютера до яскравості оточуючих його поверхонь не повинно перевищувати у робочій зоні 3:1.

При розташуванні відео терміналів ЕОМ за периметром приміщення лінії світильників штучного освітлення повинні розміщуватися локально над робочими місцями.

Для забезпечення нормованих значень освітлення в приміщеннях з відеотерміналами ЕОМ загального та персонального користування необхідно очищати віконне скло та світильники не рідше ніж 2 рази на рік, та своєчасно, проводити заміну ламп, що перегоріли.


Таблиця 5.1

Норми освітленості в кабінетах і класах з ПК

Характеристика роботи

Робоча поверхня

Площина

Освітленість, лк

Примітка

Робота переважно з екранами дисплеїв ПК (50 % та більше робочого часу) 

Екран 

В

200

не вище

Клавіатура 

Г

400

не нижче

Стіл 

Г

400

не нижче

Робота переважно з документами (з екранами дисплеїв ПК менше 50 % робочого часу) 

Екран 

В

200

не вище

Клавіатура 

Г

400

не нижче

Стіл 

Г

500

не нижче

Дошка 

В

500

не нижче

Проходи основні 

Підлога

Г

100

Примітка: В - вертикальна площина, Г - горизонтальна площина.
Загальне освітлення має бути виконане у вигляді суцільних або переривчатих ліній світильників, що розміщуються збоку від робочих місць (переважно зліва) паралельно лінії зору працівників. Допускається застосовувати світильники таких класів світлорозподілу:

– світильники прямого світла — П;

– переважно прямого світла — Н;

– переважно відбитого світла — В.

Вимоги до рівнів шуму та вібрації.

У приміщеннях з ЕОМ рівні звукового тиску, рівні звуку та еквівалентні рівні звуку на робочих місцях повинні відповідати вимогам ГОСТ 12.1.003 ССБТ «Шум. Общие требования безопасности», СН 3223-85 «Санітарні норми допустимих рівнів шуму на робочих місцях», затверджених Міністерством охорони здоров’я СРСР, ГР N 2411-81 «Гігієнічні рекомендації по встановленню рівнів шуму на робочих місцях з урахуванням напруженості та тяжкості праці», затверджених Міністерством охорони здоров’я України.

Рівні вібрації під час виконання робіт з ЕОМ у виробничих приміщеннях не повинні перевищувати допустимих значень, визначених в СН 3044-84 «Санитарные нормы вибрации рабочих мест», затверджених Міністерством охорони здоров’я СРСР, та ДСанПіН 3.3.2-007-98.

Вимоги до вентиляції, опалення та кондиціювання, мікроклімату.

Приміщення з ЕОМ повинні бути обладнані системами опалення, кондиціювання повітря або припливно–витяжною вентиляцією відповідно до СНиП 2.04.05–91 «Опалення, вентиляція, кондиціювання» [17]. Параметри мікроклімату, іонного складу повітря, вміст шкідливих речовин на робочих місцях, оснащених відеотерміналами, повинні відповідати вимогам пункту 2.4 СН 4088-86 «Санітарні норми мікроклімату виробничих приміщень», затверджених Міністерством охорони здоров’я СРСР, ГОСТ 12.1.005-88 «ССБТ Общие санитарно-гигиенические требования к воздуху рабочей зоны» (табл. 5.2), СН 2152-80 «Санітарно-гігієнічні норми допустимих рівнів іонізації повітря виробничих та громадських приміщень» (таблиця 5.3).

Таблиця 5.2

Нормовані параметри мікроклімату для приміщень з ВДТ та ПЕОМ

Пора року

Категорія робіт згідно ГОСТ     12.1-005-88

Температура повітря, град.С,

Відносна вологість повітря, %

Шкідливість руху повітря, м/с

оптимальна

оптимальна

оптимальна

Холодна

легка -1 а

22 – 24

40 – 60

0,1

легка -1 б

21 – 23

40 – 60

0,1

Тепла

легка -1 а

23 – 25

40 – 60

0,1

легка -1 б

22 – 24

40 – 60

0,2

Таблиця 5.3

Рівні іонізації повітря приміщень при роботі на ВДТ та ПЕОМ (відповідно до СН 2152-80)

Рівні

Кількість іонів в 1 см куб. повітря

+

n

-

n

Мінімально необхідне

400

600

Оптимальні

1500 – 3000

3000 – 5000

Максимально допустимі

50000

50000

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

Рівні ультрафіолетового випромінювання не повинні перевищувати допустимих відповідно до СН № 4557-88 «Санітарні норми ультрафіолетового випромінювання у виробничих приміщеннях», затверджених Міністерством охорони здоров’я  та ДСанПІН 3.3.2-007-98.

Гранично допустима напруженість електростатичного поля на робочих місцях не повинна перевищувати рівнів, наведених в ГОСТ 12.1.045 «ССБТ. Електромагнітні поля. Допустимі рівні на робочих місцях і вимоги до проведення контролю», СН № 1757–77 «Санітарно-гігіеничні норми допустимої напруги електростатичного поля» та ДСанПІН 3.3.2–007–98.

Потужність експозиційної дози рентгенівського випромінювання на відстані 0,05 м від екрана та корпуса відео термінала при будь–яких положеннях регулювальних пристроїв відповідно до Норм радіаційної безпеки України (НРБУ-97), затверджених постановою державного санітарного лікаря Міністерства охорони здоров’я України від 18.08.97 № 58, не повинна перевищувати 7,74×10~12 А/кГ, що відповідає еквівалентній дозі 0,1 мбер/год. (100 мкР/год.).

Вимоги електробезпеки.

Під час проектування систем електропостачання, монтажу силового електрообладнання та електричного освітлення будівель та приміщень для ЕОМ необхідно дотримуватись вимог ПВЕ, ПТЕ, ПБЕ, СН 357–77 «Инструкция по проектированию силового осветительного оборудования промышленных предприятий», затверджених Держбудом, ГОСТ 12.1.006, ГОСТ 12.1.030 «ССБТ. Электробезопасность. Защитное заземление, зануление», ГОСТ 12.1.019  «ССБТ. Электробезопасность. Общие требования и номенклатура видов защиты», ГОСТ 12.1.045, ВСН 59-88 Держкомархитектури «Электрооборудование жилых и общественных зданий. Нормы проектирования», Правил пожежної безпеки в Україні, цих Правил, а також розділів СНиП, що стосуються штучного освітлення і електротехнічних пристроїв, та вимог нормативно–технічної і експлуатаційної документації заводу-виробника ЕОМ.

У приміщенні, де одночасно експлуатується або обслуговується більше п'яти персональних ЕОМ, на помітному та доступному місці встановлюється аварійний резервний вимикач, який може повністю вимкнути електричне живлення приміщення, крім освітлення.

ЕОМ, периферійні пристрої ЕОМ та устаткування для обслуговування ремонту та налагодження ЕОМ повинні підключатися до електромережі тільки з допомогою справних штепсельних з’єднань і електророзеток заводського виготовлення. Неприпустимим є підключення ЕОМ, периферійних пристроїв ЕОМ та устаткування для обслуговування, ремонту та налагодження ЕОМ до звичайної двопровідної електромережі, в тому числі – з використанням перехідних пристроїв. Електромережу штепсельних розеток для живлення персональних ЕОМ, периферійних пристроїв ЕОМ та устаткування для обслуговування, ремонту та налагодження ЕОМ при розташуванні їх уздовж стін приміщення прокладають по підлозі поряд зі стінами приміщення, як правило, в металевих трубах і гнучких металевих рукавах з відводами відповідно до затвердженого плану розміщення обладнання та технічних характеристик обладнання.

Вимоги до обладнання.

Відеотермінали, ЕОМ, ПЕОМ, спеціальні периферійні пристрої ЕОМ та устаткування для обслуговування, ремонту та налагодження ЕОМ повинні відповідати вимогам чинних в Україні стандартів, нормативних актів з охорони праці та цих Правил. Відеотермінали, ЕОМ, ПЕОМ, спеціальні периферійні пристрої ЕОМ закордонного виробництва додатково повинні відповідати вимогам національних стандартів держав–виробників і мати відповідну позначку на корпусі, в паспорті або іншій експлуатаційній документації.

Вимоги до організації робочого місця користувача ЕОМ.

Організація робочого місця користувача відеотерміналу та ЕОМ повинна забезпечувати відповідність усіх елементів робочого місця та їх розташування ергономічним вимогам ГОСТ 12.2.032 «ССБТ. Рабочее место при выполнении работ сидя. Общие эргономические требования»; характеру та особливостям трудової діяльності [10].

Площа, виділена для одного робочого місця з відеотерміналом або персональною ЕОМ, повинна складати не менше 6 м2, а обсяг – не менше 20 м3. Робочі місця з відеотерміналами відносно світлових прорізів повинні розміщуватися так, щоб природне світло падало збоку, переважно зліва.

При розміщенні робочих місць з відеотерміналами та персональними ЕОМ необхідно дотримуватись таких вимог:

– робочі місця з відеотерміналами та персональними ЕОМ розміщуються на відстані не менше 1 м від стін зі світловими прорізами;

– відстань між бічними поверхнями відеотерміналів має бути не меншою за 1,2 м;

– відстань між тильною поверхнею одного відео термінала та екраном іншого не повинна бути меншою 2,5 м;

– прохід між рядами робочих місць має бути не меншим 1 м.

Конструкція робочого місця користувача відеотермінала (при роботі сидячи) має забезпечувати підтримання оптимальної робочої пози з такими ергономічними характеристиками: ступні ніг – на підлозі або на підставці для ніг; стегна – в горизонтальній площині; передпліччя – вертикально; лікті – під кутом 70–90о до вертикальної площини; зап’ястя зігнуті під кутом не більше 20о відносно горизонтальної площини, нахил голови –15–20о відносно вертикальної площини.

Висота робочої поверхні столу для відеотермінала має бути в межах 680–800 мм, а ширина – забезпечувати можливість виконання операцій в зоні досяжності моторного поля. Рекомендовані розміри столу: висота –725 мм, ширина –600–1400 мм, глибина –800–1000 мм.

Для зниження статичного напруження м’язів рук необхідно застосовувати стаціонарні або знімні підлокітники довжиною не менше 250 мм, шириною – 50 – 70 мм, що регулюються по висоті над сидінням у межах230 ± ЗО мм та по відстані між підлокітниками в межах 350–500 мм.

Екран відеотермінала та клавіатура мають розташовуватися на оптимальній відстані від очей користувача, але не ближче 600 мм, з урахуванням розміру алфавітно–цифрових знаків та символів. Відстань від екрана до ока працівника повинна складати:

- при розмірі екрану по діагоналі 35/38 см (14'' /15'') – 600 – 700 мм

- при розмірі екрану по діагоналі 43 см (17'') – 700 – 800 мм

- при розмірі екрану по діагоналі 48 см (19'') – 800 – 900 мм

- при розмірі екрану по діагоналі 53 см (21'') – 900 – 1000 мм

Клавіатуру слід розміщувати на поверхні столу або на спеціальній, регульованій за висотою, робочій поверхні окремо від столу на відстані 100–300 мм від краю, ближчого до працівника. Кут нахилу клавіатури має бути в межах 5–15'.

Розміщення принтера або іншого пристрою введення-виведення інформації на робочому місці має забезпечувати добру видимість екрану відеотермінала, зручність ручного керування пристроєм введення-виведення інформації в зоні досяжності моторного поля: по висоті 900 – 1300 мм, по глибині 400 – 500 мм.

При потребі високої концентрації уваги під час виконання робіт з високим рівнем напруженості суміжні робочі місця з відеотерміналами та персональними ЕОМ необхідно відділяти одне від одного перегородками висотою 1,5 – 2 м.

Вимоги безпеки під час експлуатації ЕОМ.

Користувачі ЕОМ повинні слідкувати за тим, щоб відеотермінали, ЕОМ, периферійні пристрої ЕОМ та устаткування для обслуговування, ремонту та налагодження ЕОМ були справними і випробуваними відповідно до чинних нормативних документів. Щоденно перед початком роботи необхідно проводити очищення екрана відеотермінала від пилу та інших забруднень. Після закінчення роботи відеотермінал та персональна ЕОМ повинні бути відключені від електричної мережі. У разі виникнення аварійної ситуації необхідно негайно відключити відеотермінал та ЕОМ від електричної мережі. При використанні з ЕОМ та відеотерміналами лазерних принтерів потрібно дотримуватись вимог Санітарних норм та правил устрою та експлуатації лазерів № 5804–91, затверджених Міністерством охорони здоров'я  в 1991 р.

Розрахунок штучного освітлення.

Раціональне освітлення виробничих ділянок є одним з найважливіших факторів попередження травматизму і професійних захворювань. Правильно організоване висвітлення створює сприятливі умови праці, підвищує працездатність і продуктивність праці. Освітленість на робочому місці повинна бути такою, щоб працюючий міг без напруги зору виконувати свою роботу при припустимому з народногосподарської точки зору витратою засобів, матеріалів і електроенергії [17].

Приведемо розрахунок штучного освітлення для приміщення, розміри якого: довжина 5м, ширина 3м, висота 3м.

Розрахунок освітленості виконаємо методом коефіцієнта використання. Цей метод використовується для розрахунку загального рівномірного висвітлення горизонтальних поверхонь виробничих приміщень при відсутності затемнень.

Розрахунок висвітлення методом коефіцієнта використання виконується по формулі:

,                                            (4.1)

де   – необхідний світловий потік ламп у кожнім світильнику, лм;  – нормативна мінімальна освітленість, лк, з довідкової літератури  [7];  – коефіцієнт запасу, вибирається з довідкової літератури [10];  – освітлювана площа, кв м;  – коефіцієнт мінімальної освітленості, величина якого знаходиться в межах від 1,1 до 1,5 (при оптимальних відносинах відстані між світильниками до розрахункової висоти для ламп розжарювання і ДРЛ =1,15 і для люмінесцентних ламп  = 1,1);  – число світильників у приміщенні;  – коефіцієнт використання світлового потоку.

Приймаємо: =400 лк; =1,5; =1,1

Освітлювана площа приміщення визначається по формулі:

,                                              (4.2)

де  – освітлювана площа, кв м;  – довжина приміщення, м;  – ширина приміщення, м.

Отримуємо  м2.

Розміщення світильників у приміщенні при системі загального висвітлення залежить від розрахованої висоти їхнього підвісу , що звичайно задається розмірами приміщень.

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

,                                                      (4.3)

приймається по таблиці в довідковій літературі [7 ] у залежності від типової кривої сили світла світильника. Для люмінесцентних ламп при косинусоідальній типової кривої вибираємо  = 1,4.

Знаходимо розрахункову висоту підвісу по наступній формулі:

,                                             (4.5)

де  – висота приміщення, м;  – висота звису світильника (від перекриття), м;    – висота робочої поверхні над підлогою, м.

Приймаємо: H=3,9 м, =0,7 м, =0,8 м. Тоді =3,9– 0,7 – 0,8=1,4 м.

Відстань між світильниками визначаємо з формули (4.5):

,       м                                  (4.6)

Визначаємо кількість світильників для установки в приміщенні:

,          ,  шт.                    (4.7)

Для визначення коефіцієнта використання знаходимо індекс приміщення i:

,                                             (4.8)

де A і B – відповідно довжина і ширина приміщення, м;  – розрахункова висота підвісу, м. Отримуємо

Отримане значення i округляємо до найближчого табличного значення і приймаємо  = 0,78.

Оцінюємо коефіцієнти відображення поверхонь приміщення: стелі –, стін – , робочої поверхні – . Приймаємо:  = 70%, = 50%, = 30%.

За отриманим значенням i і визначаємо величину коефіцієнта використання світлового потоку для обраного світильника [7 ].

Вибираємо світильник типу ПВЛМ–Д, для якого =73%. По формулі (4.1) визначаємо необхідний світловий потік ламп у кожнім світильнику:

.

З довідкової літератури  вибираємо необхідну лампу. Тип обраної лампи – ЛД-65 – 3570 лм.. У світильнику будуть установлені дві таких лампи.

5.3. Пожежна безпека

Пожежна безпека – це стан об’єкту, при якому виключається можливість пожежі, а у випадку її виникнення виключається дія на людей небезпечних факторів пожежі та забезпечується захист матеріальних цінностей.

Відповідно  до  Закону  України  «Про  пожежну  безпеку» [13] пожежна   безпека   повинна    забезпечуватися    шляхом проведення організаційних, технічних та інших заходів, спрямованих на  попередження  пожеж,  забезпечення  безпеки  людей,   зниження можливих   майнових   втрат  і  зменшення  негативних  екологічних наслідків у  разі  їх  виникнення,  створення  умов  для  швидкого виклику пожежних підрозділів та успішного гасіння пожеж.

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

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

Контроль за дотриманням затверджених відповідно до діючого законодавства норм і правил пожежної безпеки на об’єктах народного господарства здійснюють органи Державного пожежного нагляду (ДНП) управління пожежної охорони Міністерства надзвичайних ситуацій України.

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

На (підприємстві)  встановлюються первинні засоби пожежегасіння відповідно до вимог Правил пожежної безпеки України. У приміщеннях з комп’ютерами рекомендується використовувати системи автоматичної пожежної сигналізації для виявлення пожежі та оповіщення працівників. Для приміщення, по якому проводиться розрахунок, потрібно влаштування місць утримання засобів пожежогасіння вогнегасників порошкових типу ОПУ–5 з вільним доступом у випадку необхідності їх використання.


ВИСНОВКИ

Інтернет - магазин (електронний магазин, онлайновий магазин) - це програмний комплекс, який дозволяє продавати товари чи послуги через мережу Інтернет та автоматизувати управління бізнес-процесами.

Електронна торгівля у віртуальному магазині ґрунтується на тій же структурі, що і традиційна торгівля.

Класифікують Інтернет-магазини по різних критеріях: по моделі бізнесу, по відношенню з постачальниками, по товарному асортименту, по методах роздрібного продажу товарів в мережі.

Інтернет-магазини мають свої як позитивні так і негативні сторони. До переваг відносять: економія часу, низькі ціни, безкоштовна доставка, свобода вибору, психологічний комфорт, зручність оплати, анонімність. До недоліків Інтернет-магазину відносять: недосконала система доставки, незручна система оплати, складна система замовлення, нестабільний асортимент, необхідність реєстрації, проблема віртуальності, невиконання вибору замовлення, втрата замовлення.

Типовий варіант Інтернет-магазину складається з наступних функціональних частин: каталог товарів, пошукова система, корзина, реєстраційна форма, форма відправки замовлення.

В рамках дипломної роботи було досліджено існуючі Запоріжські, Львівські та Рівненські Інтернет-магазини.

Було проведено маркетингове дослідження Інтернет-магазину, а саме здійснено опитування користувачів Internet на тему: «Чому покупці, що займаються шопінгом в Інтернет - магазинах, віддають перевагу їм над магазинами традиційним?» результати досліджень були оформленні у вигляді діаграми.

Враховуючи основні вимоги до створення Інтернет-магазину та за допомогою сучасних Інтернет технологій мови програмування PHP та системи управління базами даних MySQL, було розробленно Web-сайт Інтернет-магазин, функціональна структура якого складається з Web-сайту та бази даних, дані елементи взаємодіють між собою.

Структура бази даних складається з 11 таблиць, які пов’язані між собою зв’язком типу один до багатьох, що забезпечує збереження цілісності даних. Структура  Web-сайту базується на адміністративній та клієнтській частині.

Позитивними якостями розробленого Інтернет-магазину є:

  1.  Зручний інтерфейс користувача;
  2.  Відсутність реєстрації клієнтів магазину, що забезпечує їхню анонімність;
  3.  Сортування товарів по групах, що пришвидшує пошук потрібного товару;
  4.  Вибір оплати та доставки товару користувачем;
  5.  Невелика за розміром форма для замовлення;
  6.  Автоматична зміна даних в базі даних магазину при здійсненні замовлення обраного товару.

Негативними якостями Інтернет-магазину є:

  1.  Неповна база товарів;
  2.  Відсутність можливості оплати новітніми засобами;
  3.  Ціни товарів не представленні в іноземній валюті.

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


СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

  1.  Алексеев А. А. Как сделать рекламу Вашей фирмы в сети Интернет: Пошаговое руководство для фирм,  желающих сделать рекламу своей продукции в сети Интернет. – М: Dux comp, 1997.
  2.  ГОСТ 12.1.030 - 81*. ССБТ. Электробезопасность. Защитное заземление. Зануление. - Введ. 01.01.82/
  3.  Державний реєстр міжгалузевих і галузевих нормативних актів про охорону праці (реєстр ДНАОП). – К.: 1998. — 240 с .
  4.  Економічні й фінансові розрахунки в Excel. В.Пикуза, О. Гаращенко. Питер, Видавнича група BHV, 2004р.
  5.  Закон України "Про охорону праці" Законодавство України про охорону праці , т.1.- К. - 1995. - 558 с. Крамер Эрик HTML: Наглядный курс Web-дизайна. М.: Издательский дом ,2001
  6.  Навчальний посібник: Інженерні рішення з охорони праці при розробці дипломних проектів інженерно-будівельних спеціальностей: – Київ: Основа, 2001.- 336 с.Папкович П.Ф. Теория упругости. М., 1939.
  7.  Нольден М. Ваш первый выход в Internet: Для начинающих пользователей Internet и широкого круга пользователей PC / Гл. ред. Е.В. Кондукова; Пер с нем. К.А. Шиндер. - Спб.: ИКС, 1996. - 238 с.
  8.  Популярные Web-сервисы: практика использования. Айверсон Уилл. КУДИЦ – ОБРАЗ, 2005.
  9.  Правила охорони праці під час експлуатації електронно-обчислювальних машин . Затверджено МінЮстом України 17 червня 1999 р. №382/3675 [44]
  10.  Правила пожежної безпеки в Україні. – К.: Основа, 2002. – 352с.
  11.  Про охорону праці: Закон України - редакцiя вiд 01.01.2004. 
  12.  Про пожежну безпеку: Закон України.– К.: 1993. 
  13.  Разработка Web - приложений с помощью PHP и MySQL, 3-е издание. Люк Веллинг, Лора Томсон. Вільямс, 2005.
  14.  СНиП 11-4-79 Естественное и искусственное освещение – М.: Стройиздат 1980.
  15.  СНиП 2.01.02 - 85. Противопожарные нормы проектирования зданий и сооружений. Нормы проектирования. - М.: Стройиздат. 1985. -16 с
  16.  СНиП 2.04.05 - 92. Нормы проектирования. Отопление, вентиля-ция и кондиционирование. - М.: Стройиздат. - 1988. - 64 с.
  17.  Фролов А.В., Фролов Г.В. Глобальные сети компьютеров. Практическое введение в Internet, E-mail, FTP, WWW, и HTML, программирование для Windiws Sockets. - Диалог - МИФИ, 1996. Ковалев А., Курдюмов И и др. Управление проектом по созданию интернет-сайта - М.: Альпина Паблишер, 2001. - 337 с.
  18.  Энди Харрис. PHP/MySQL для початківців. Кудиц-образ, 2005.
  19.  Internet, Сервiси, HTML i web дизайн. Глинський. Деол, 2000.
  20.  PHP 5.0 для начинающих, или как создать динамичный web-сайт. - 2-е изд., дополненное и исправленное. Леонтьев Б. Новый издательский дом, 2006.
  21.  WEB-дизайн Руководство пользователя. Под ред. Леонтьева. Познавательная книга, 2000.
  22.  WEB. Дизайн и коммерция. Конспект программиста. Под ред. Цеховой. Наука и техника, 2000.
  23.   www.yandex.ru
  24.   www.rambler.ru.
  25.  www.google.com.ua
  26.   www.nashformat.com.ua
  27.   www.technomir.zp.ua
  28.   www.yarst-dodomu.com.ua/index.php
  29.   www.syteg.net
  30.   www.enter.rv.ua
  31.   ktc.rv.ua
  32.  www.sostav.ru/news/2005/10/07/r5/

ДОДАТКИ

ЛІСТИНГ ПРОГРАМИ

index.php

<?php

//=============================

include("php/sesion.php");

include("php/gui.php");

include("php/savepic.php");

include("php/edit_tovar.php");

include("php/guest.php");

include("php/zamov.php");

include("php/main.php");

//=============================

//upload_pic("index.php","mytov");

start_d();

menu_top($_GET['main']);

if(isset($_GET['main']))

main_column(main_login());

if($_SESSION['_USER']=="guest")

{

if(isset($_GET['zamov']))

 main_column(main_zamov());

else

 if(!isset($_GET['main']))   

  main_column(main_shov());

side_column("<strong>Кошик:</strong>".left_menu(return_menu_koshik()).

"<strong>Категорії:</strong>".

left_menu(return_menu_group_t()));

}

else

{

if($_SESSION['_USER']=="admin")

{

 main_column(main_tov());  

 side_column(left_menu(ret_menu_tovar()));

}

}

//side_column(left_menu($m_el1));

//side_column(left_menu($m_el1));

//side_column("fdsjkhfksdhfkjsdh jfsdgfjs gd dslhgfksdhf kjsdhfk sd");

end_d();

?>  


guest.php

<?php

function return_menu_group_t()

{

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {

  $aSql="select * from group_tovar";

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {    

   $i=1;

   while($aRow=mysql_fetch_array($aRes))

   {

    //$m_el1 [1][1]="index.php?tovar=0";  

    //$m_el1 [1][2]="Товар";

    $ret[$i][1]="index.php?show=".$aRow["id"];

    $ret[$i][2]=$aRow["name_group"];        $i++;

   }    

   mysql_free_result($aRes);

  }

 }

}

mysql_close($adb);

return $ret;    

}

function show_guest_tovar($id_g)

{

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {

  $aSql="select id,name_group from group_tovar where id=".$id_g;

  $aRes=mysql_query($aSql,$adb);   

  if($aRes==true)

  {    

   if($aRow=mysql_fetch_array($aRes))

   {

     $ret=$ret."             <table class='contentpaneopen'>

       <tbody>

       <tr>

       <td class='contentheading' width='100%'>".$aRow["name_group"]."</td>    

       </tr></tbody>

      </table>";

   }

  }

  mysql_free_result($aRes);

  

  $aSql="select

    tovar.id as id,

     tovar.name_tovar as name,

     tovar.amount as amount,

     tovar.count as count,      

     tovar.description as description,

     group_compani.name_compani as compani_t       from tovar,group_compani where

       tovar.id_group=".$id_g." and tovar.id_compani=group_compani.id";

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {

while($aRow=mysql_fetch_array($aRes))

   {

    if(strlen($aRow["description"])>80)    $desc=substr($aRow["description"],1,80)."...";

    else

     $desc=$aRow["description"];

    $ret=$ret."<div class='module'><div><div><div>";  

    $ret=$ret." <strong>".$aRow["compani_t"]." ".$aRow["name"]."</strong> <br>        

       ".$desc."<br>

<i>Ціна:".$aRow["amount"]." грн.  "." Кількість:".$aRow["count"]."</i>

       <a  class='readon' href='index.php?detail=".$aRow["id"].

       "'>Детальніше</a>

       </div>

       </div>

      </div>

     </div>";         

   }

   //$ret=$ret."

   mysql_free_result($aRes);

  }

  else

  {

   $ret="<center>Помилка при роботі з базою даних</center>";

  }   

 }

}  

mysql_close($adb);

return $ret;

}

function detail_tovar_show($id_t)

{

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {

  $aSql="select

    tovar.id as id,

     tovar.name_tovar as name,

     tovar.amount as amount,

     tovar.count as count,      

     tovar.description as description,

     group_tovar.name_group as group_t,

     group_compani.name_compani as compani_t            

    from tovar,group_tovar,group_compani  where

       tovar.id_group=group_tovar.id and

       tovar.id_compani=group_compani.id

       and tovar.id=".$id_t;

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {

   if($aRow=mysql_fetch_array($aRes))

   {

    $ret=$ret."<div class='module'>

      <table class='contentpaneopen'><tbody>

       <tr>

       <td class='contentheading' width='100%'>

       ".$aRow["group_t"]." ".$aRow["compani_t"]."</td>    

       </tr></tbody>

      </table>";

    $ret=$ret."<table class='contentpaneopen'>

      <div class='module'>

       <div>

        <div>

         <div>";

    $ret=$ret." <strong>".$aRow["compani_t"]." ".$aRow["name"]."</strong> <br>        

       ".$aRow["description"]."<br>

<i>Ціна:".$aRow["amount"]."грн.  "." Кількість:".$aRow["count"]."</i>";

    

    if($aRow["count"]>0)

     $ret=$ret."<a  class='readon' href='index.php?add=".$aRow["id"]."'>в кошик</a>";

    $ret=$ret."</div>

       </div>

      </div>

     </div>";

   }

   $ret=$ret."</ul>

      </td>

      </tr>

      </tbody></table></div>";

   mysql_free_result($aRes);

  }

  else

  {

   $ret="<center>Помилка при роботі з базою даних</center>";

  }   

 }

}

mysql_close($adb);

return $ret;

}

function return_menu_koshik()

{

$size_m=sizeof($_SESSION['_SEL_T']);

$ret[1][1]="index.php?kosh=0";

$ret[1][2]="<strong>В кошику \"".$size_m."\" товара</strong>";

return $ret;    

}

function add_koshik($id_tov)

{

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {

  $aSql="select

    tovar.id as id,

     tovar.name_tovar as name,

     tovar.amount as amount,

     tovar.count as count,      

     tovar.description as description,

     group_tovar.name_group as group_t,

     group_compani.name_compani as compani_t

    from tovar,group_tovar,group_compani  where

       tovar.id_group=group_tovar.id and

       tovar.id_compani=group_compani.id

       and tovar.id=".$id_tov;

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {

   if($aRow=mysql_fetch_array($aRes))

   {

    $i=sizeof($_SESSION['_SEL_T']);

    $_SESSION['_SEL_T'][$i+1]=$id_tov;

    

    $ret=$ret."<div class='module'>";

    $ret=$ret."<table class='contentpaneopen'>

      <div class='module'>

       <div>

        <div>

         <div>";

    $ret=$ret." <img class='speakers' src='images/action/package.png'>

       <strong>Товар доданий до кошика</strong><br><br>

       ".$aRow["group_t"]."

       ".$aRow["compani_t"]." ".$aRow["name"]."<br>         

       <a  class='readon' href='index.php?detail=".$id_tov."'>назад</a>       

       </div>

       </div>

      </div>

     </div>";

   }

   $ret=$ret."</ul>

      </td>

      </tr>

      </tbody></table></div>";

   mysql_free_result($aRes);

  }

  else

  {

   $ret="<center>Помилка при роботі з базою даних</center>";

  }   

 }

}

mysql_close($adb);

return $ret;

}

function show_koshik()

{

$size_k=sizeof($_SESSION['_SEL_T']);

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb) && ($size_k>0))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {

  $ret=$ret."       

      <table class='contentpaneopen'>

       <tbody>

       <tr>

       <td class='contentheading' width='100%'>Товари в кошику</td>    

       </tr></tbody>

      </table>";

  $ret=$ret.

  "<div class='module'>

  <div><div><div>

  <table class='contentpaneopen' border=1 BORDERCOLOR='#d7d7d7' RULES='GROUPS'>

   <tr class='small' BGCOLOR='#eff2f3'>

    <td align=center><b>№</b></td>

    <td align=center><b>Товар</b></td>

    <td align=center><b>Ціна</b></td>

    <td align=center><b>Видалити</b></td>

   </tr>";

  $sum_amount=0;

  for($i=1;$i<=$size_k;$i++)

  {     

   $aSql="select tovar.id as id,tovar.name_tovar as name,tovar.amount as amount,

       tovar.count as count,tovar.description as description,

       group_tovar.name_group as group_t,group_compani.name_compani as compani_t            

      from tovar,group_tovar,group_compani  where

         tovar.id_group=group_tovar.id and tovar.id_compani=group_compani.id

         and tovar.id=".$_SESSION['_SEL_T'][$i];

     

   $aRes=mysql_query($aSql,$adb);

   if($aRes==true)

   {

    if($aRow=mysql_fetch_array($aRes))

    {  

     $ret=$ret." <tr class='small'>

        <td>".$i."</td>

<td>".$aRow["group_t"]."

".$aRow["compani_t"]."

".$aRow["name"]."

        </td>

        <td align=center>

".$aRow["amount"]." грн.

        </td>

        <td align=center>

         <a href='index.php?kosh=1&id=".$i."'>

         <img src='images/action/tool_delete.png' width='16' height='16'>

         </a>

        </td>

        </tr>";

$sum_amount=$sum_amount+$aRow["amount"];

    }

    mysql_free_result($aRes);

   }

  }

  $ret=$ret."

    <tr class='small' align=right BGCOLOR='#eff2f3'>

    <td colspan=4><b>Всього: ".$sum_amount." грн.</b></td>

    </tr>

    </table></div></div></div></div>";

  $ret=$ret." <div class='module'>

      <div>

       <div>

        <div>

        <a  class='readon' href='index.php?zamov'>Замовити</a>

        </div>

       </div>

      </div>

     </div>";

 }

 mysql_close($adb);

}

return $ret;

}

function remove_from_koshik($id)

{

$index=1;

for($i=1;$i <= sizeof($_SESSION['_SEL_T']);$i++)

{

 if($i != $id)

 {      

  $ret[$index]=$_SESSION['_SEL_T'][$i];

  $index++;

 }  

}

$_SESSION['_SEL_T']=null;

 

$_SESSION['_SEL_T']=$ret;

}

//======================================

function main_shov()

{

if(isset($_GET['show']))

 $ret=show_guest_tovar($_GET['show']);

else

 if(isset($_GET['detail']))  

  $ret=detail_tovar_show($_GET['detail']);

 else

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

   $ret=add_koshik($_GET['add']);

  else

   if(isset($_GET['kosh']))

   {

    switch($_GET['kosh'])

    {

     case 0:

      $ret=show_koshik();

      break;

     case 1:

      remove_from_koshik($_GET['id']);

      $ret=show_koshik();

      break;

    }

   }

return $ret;

}

//======================================

?>


Session.php

<?php

session_start();

session_register('_DB');

session_register('_DB_NAME');

session_register('_DB_USER');

session_register('_DB_PASS');

session_register('_SEL_T');

session_register('_USER');

 

$_SESSION['_DB']="localhost";

$_SESSION['_DB_NAME']="rave_mdb";

$_SESSION['_DB_USER']="guest";

$_SESSION['_DB_PASS']="loh";

 

if($_SESSION['_USER']!="admin")

 $_SESSION['_USER']="guest";

//$_SESSION['_USER']="admin";

?>


EditTovar.php

<?php

function show_tovar()

{

$ret="";

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {

  $aSql="select

    tovar.id as id,

     tovar.name_tovar as name,

     tovar.amount as amount,

     tovar.count as count,

     group_tovar.name_group as group_t,

     group_compani.name_compani as compani_t      

    from tovar,group_tovar,group_compani where

       tovar.id_group=group_tovar.id and tovar.id_compani=group_compani.id";

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {

   $ret="     

    <table class='contentpaneopen' border=1 BORDERCOLOR='#d7d7d7' RULES='All'>             

     <tr class='small' BGCOLOR='#eff2f3' align=center>

      <td >№</td>

      <td>Назва</td>

      <td>Група</td>

      <td>Компанія</td>

      <td>Ціна</td>

      <td>Кількість</td>

      <td>Ред.</td>

     </tr>";

   while($aRow=mysql_fetch_array($aRes))

   {

    $ret=$ret."<tr class='small'>";

    $ret=$ret."<td>".$aRow["id"]."</td>

          <td>".$aRow["name"]."</td>

       <td>".$aRow["group_t"]."</td>

       <td>".$aRow["compani_t"]."</td>

       <td>".$aRow["amount"]."</td>

       <td>".$aRow["count"]."</td>";        

    $ret=$ret."<td align=center><a href='index.php?tovar=1&id=".$aRow["id"]."'>

       <img src='images/action/char.png' width='16' height='16'>

    </a></td></tr>";

   }

   $ret=$ret."</div></div></div></div> </table>";

   mysql_free_result($aRes);

  }

  else

  {

   $ret=$ret."<center>Помилка при роботі з базою даних</center>";

  }   

 }

}

mysql_close($adb);

return $ret;

}

function edit_tovar($id_tov)

{

$ret="";

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {      

  $aSql="select * from tovar where id=".$id_tov;

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {

   

   if($aRow=mysql_fetch_array($aRes))

   {

    $t_group_id=$aRow["id_group"];

    $c_group_id=$aRow["id_compani"];

    $ret="<form action='index.php?tovar=2&id=".$aRow["id"]."' method='post'>

      <table class='contentpaneopen'>                            

    ";     

    $ret=$ret."<tr><td>Назва товару:</td><td><INPUT TYPE=text SIZE=20 NAME=tovar_name VALUE='".$aRow["name_tovar"]."'></td></tr>

         <tr><td>Ціна товару:</td><td><INPUT TYPE=text SIZE=20 NAME=tovar_amount VALUE='".$aRow["amount"]."'></td></tr>

         <tr><td>Кількість товару:</td><td><INPUT TYPE=text SIZE=20 NAME=tovar_count VALUE='".$aRow["count"]."'></td></tr>

         <tr><td>Опис товару:</td><td><TEXTAREA NAME=tovar_description ROWS=5 COLS=50>".$aRow["description"]."</TEXTAREA></td></tr>";

   }    

   mysql_free_result($aRes);

  }   

  $aSql="select * from group_tovar";

  $aRes=mysql_query($aSql,$adb);   

  if($aRes==true)

  {

   $tov_group="<tr><td>Група товару:</td>

      <td><select name='tov_group'>";

   while($aRow=mysql_fetch_array($aRes))

   {

    if($aRow["id"]==$t_group_id)

     $tov_group=$tov_group."<option value='".$aRow["id"]."' selected>".$aRow["name_group"];

    else

     $tov_group=$tov_group."<option value='".$aRow["id"]."'>".$aRow["name_group"];

   }  

   $tov_group=$tov_group."</select></td></tr>";

   mysql_free_result($aRes);

  }

  $ret=$ret.$tov_group;

  

  $aSql="select * from group_compani";

  $aRes=mysql_query($aSql,$adb);   

  if($aRes==true)

  {

   $tov_compani="<tr><td>Компанія:</td><td><select name='tov_compani'>";

   while($aRow=mysql_fetch_array($aRes))

   {

    if($aRow["id"]==$c_group_id)

     $tov_compani=$tov_compani."<option value='".$aRow["id"]."' selected>".$aRow["name_compani"];

    else

     $tov_compani=$tov_compani."<option value='".$aRow["id"]."'>".$aRow["name_compani"];

   }  

   $tov_compani=$tov_compani."</select></td></tr>";

   mysql_free_result($aRes);

  }

  $ret=$ret.$tov_compani."<tr><td colspan=2><INPUT TYPE=submit name='Submit' VALUE='Зберегти'>

        </td></tr></table></form>";

 }

}

mysql_close($adb);

return $ret;

}

function add_tovar()

{

$ret="";

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {    

  $ret="<form action='index.php?tovar=2' method='post'>

     <table class='contentpaneopen'>";

  $ret=$ret."<tr><td>Назва товару:</td><td><INPUT TYPE=text SIZE=50 NAME=tovar_name VALUE=".$aRow["name"]."></td></tr>

       <tr><td>Ціна товару:</td><td><INPUT TYPE=text SIZE=20 NAME=tovar_amount VALUE=".$aRow["amount"]."></td></tr>

       <tr><td>Кількість товару:</td><td><INPUT TYPE=text SIZE=20 NAME=tovar_count VALUE=".$aRow["count"]."></td></tr>

       <tr><td>Опис товару:</td><td><TEXTAREA NAME=tovar_description ROWS=5 COLS=50>".$aRow["description"]."</TEXTAREA></td></tr>";

  

  $aSql="select * from group_tovar";

  $aRes=mysql_query($aSql,$adb);   

  if($aRes==true)

  {

   $tov_group="<tr><td>Група товару:</td>

      <td><select name='tov_group'>";

   while($aRow=mysql_fetch_array($aRes))    

     $tov_group=$tov_group."<option value='".$aRow["id"]."'>".$aRow["name_group"];    

   $tov_group=$tov_group."</select></td></tr>";

   mysql_free_result($aRes);

  }

  $ret=$ret.$tov_group;

  

  $aSql="select * from group_compani";

  $aRes=mysql_query($aSql,$adb);   

  if($aRes==true)

  {

   $tov_compani="<tr><td>Компанія:</td><td><select name='tov_compani'>";

   while($aRow=mysql_fetch_array($aRes))

   {

    if($aRow["id"]==$c__group_id)

     $tov_compani=$tov_compani."<option value='".$aRow["id"]."' selected>".$aRow["name_compani"];

    else

     $tov_compani=$tov_compani."<option value='".$aRow["id"]."'>".$aRow["name_compani"];

   }  

   $tov_compani=$tov_compani."</select></td></tr>";

   mysql_free_result($aRes);

  }

  $ret=$ret.$tov_compani."<tr><td colspan=2><INPUT TYPE=submit name='Submit' VALUE='Зберегти'>

        </td></tr></table></form>";

 }

}

mysql_close($adb);

return $ret;

}

function save_tovar($id_tov,$key)

{

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {    

  if($key==1)

   $aSql="update tovar set

          name_tovar='".$_POST['tovar_name']."',

       amount=".$_POST['tovar_amount'].",

       count=".$_POST['tovar_count']." ,

       description='".$_POST['tovar_description']."' ,

       id_group=".$_POST['tov_group']." ,

       id_compani=".$_POST['tov_compani']." where id=".$id_tov;    

  else

   $aSql="insert into tovar(name_tovar,amount,count,description,id_group,id_compani)

          values('".$_POST['tovar_name']."',

          ".$_POST['tovar_amount'].",

          ".$_POST['tovar_count']." ,

          '".$_POST['tovar_description']."' ,  

          ".$_POST['tov_group'].",  

          ".$_POST['tov_compani'].")";

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

   $ret=$ret."<center>Дані успішно внесені в базу даних</center>";

  else

   $ret=$ret."<center>Помилка при внесені даних</center>";   

 }

}

mysql_close($adb);

return $ret;

}

function show_group_t()

{

$ret="";

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {

  $aSql="select * from group_tovar";

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {

   $ret="<table class='contentpaneopen' border=1 BORDERCOLOR='#d7d7d7' RULES='All' cellpadding='0' cellspacing='0'>

     <tr  class='small' BGCOLOR='#eff2f3' align=center>

      <td>№</td>

      <td>Назва групи</td>   

      <td>Ред.</td>

     </tr>";

   while($aRow=mysql_fetch_array($aRes))

   {

    $ret=$ret."<tr class='small'>";

    $ret=$ret."<td>".$aRow["id"]."</td>

<td>".$aRow["name_group"]."</td>";        

    $ret=$ret."<td align=center><a href='index.php?gt=1&id=".$aRow["id"]."'>

       <img src='images/action/char.png' width='16' height='16'>

         </a></td></tr>";

   }

   $ret=$ret."</table>";

   mysql_free_result($aRes);

  }

  else

  {

   $ret=$ret."<center>Помилка при роботі з базою даних</center>";

  }

 }

}

mysql_close($adb);

return $ret;

}

function edit_group_t($id_g)

{

$ret="";

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {      

  $aSql="select * from group_tovar where id=".$id_g;

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {    

   if($aRow=mysql_fetch_array($aRes))

   {    

    $ret="<form action='index.php?gt=2&id=".$aRow["id"]."' method='post'>

      <table class='contentpaneopen'>

    ";     

    $ret=$ret." <tr><td>Назва групи:</td>

       <td><INPUT TYPE=text SIZE=50 NAME=group_name VALUE='".$aRow["name_group"]."'></td></tr>

          <tr><td colspan=2><INPUT TYPE=submit name='Submit' VALUE='Зберегти'></td></tr>

      </table></form>";

   }    

   mysql_free_result($aRes);

  }   

 }

}

mysql_close($adb);

return $ret;

}

function add_group_t()

{

$ret="<form action='index.php?gt=2' method='post'>

   <table class='contentpaneopen'>     

  <tr><td>Назва групи:</td>

  <td><INPUT TYPE=text SIZE=50 NAME=group_name VALUE=></td></tr>

  <tr><td colspan=2><INPUT TYPE=submit name='Submit' VALUE='Зберегти'></td></tr>

   </table></form>";

return $ret;

}

function save_group_t($id_g,$key)

{

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {    

  if($key==1)

   $aSql="update group_tovar set

          name_group='".$_POST['group_name']."'

       where id=".$id_g;    

  else

   $aSql="insert into group_tovar(name_group)

          values('".$_POST['group_name']."')";  

        

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

   $ret=$ret."<center>Дані успішно внесені в базу даних</center>";

  else

   $ret=$ret."<center>Помилка при внесені даних</center>";

 }

}

mysql_close($adb);

return $ret;

}

function show_group_c()

{

$ret="";

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {

  $aSql="select * from group_compani";

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {

   $ret="<table class='contentpaneopen' border=1 BORDERCOLOR='#d7d7d7' RULES='All' >

     <tr class='small' BGCOLOR='#eff2f3' align=center>

      <td>№</td>

      <td>Назва компанії</td>       

      <td>Ред.</td>

     </tr>";

   while($aRow=mysql_fetch_array($aRes))

   {

    $ret=$ret."<tr class='small'>";

    $ret=$ret."<td>".$aRow["id"]."</td>

          <td>".$aRow["name_compani"]."</td>";        

    $ret=$ret."<td align=center><a href='index.php?gc=1&id=".$aRow["id"]."'>

    <img src='images/action/char.png' width='16' height='16'>

    </a></td></tr>";

   }

   $ret=$ret."</table>";

   mysql_free_result($aRes);

  }

  else

  {

   $ret=$ret."<center>Помилка при роботі з базою даних</center>";

  }

 }

}

mysql_close($adb);

return $ret;

}

function edit_group_c($id_g)

{

$ret="";

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {      

  $aSql="select * from group_compani where id=".$id_g;

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {    

   if($aRow=mysql_fetch_array($aRes))

   {    

    $ret="<form action='index.php?gс=2&id=".$aRow["id"]."' method='post'>

      <table class='contentpaneopen'>

    ";     

    $ret=$ret." <tr><td>Назва компанії:</td>

       <td><INPUT TYPE=text SIZE=50 NAME=compani_name VALUE='".$aRow["name_compani"]."'></td></tr>

          <tr><td colspan=2><INPUT TYPE=submit name='Submit' VALUE='Зберегти'></td></tr>

      </table></form>";

   }    

   mysql_free_result($aRes);

  }   

 }

}

mysql_close($adb);

return $ret;

}

function add_group_c()

{

$ret="<form action='index.php?gc=2' method='post'>

   <table class='contentpaneopen'>     

  <tr><td>Назва компанії:</td>

  <td><INPUT TYPE=text SIZE=50 NAME='compani_name'></td></tr>

  <tr><td colspan=2><INPUT TYPE=submit name='Submit' VALUE='Зберегти'></td></tr>

   </table></form>";

return $ret;

}

function save_group_c($id_g,$key)

{

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {    

  if($key==1)

   $aSql="update group_compani set name_compani='".$_POST['compani_name']."' where id=".$id_g;

  else

   $aSql="insert into group_compani(name_compani) values('".$_POST['compani_name']."')";   

  $aRes=mysql_query($aSql,$adb);   

  if($aRes==true)

   $ret=$ret."<center>Дані успішно внесені в базу даних</center>";

  else

   $ret=$ret."<center>Помилка при внесені даних</center>";   

 }

}

mysql_close($adb);

return $ret;

}

//================================================

function show_sity()

{

$ret="";

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {

  $aSql="select * from sity";

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {

   $ret="<table class='contentpaneopen' border=1 BORDERCOLOR='#d7d7d7' RULES='All' >

     <tr class='small' BGCOLOR='#eff2f3' align=center>

      <td>№</td>

      <td>Назва міста</td>       

      <td>Ред.</td>

     </tr>";

   while($aRow=mysql_fetch_array($aRes))

   {

    $ret=$ret."<tr class='small'>";

    $ret=$ret."<td>".$aRow["id"]."</td>

          <td>".$aRow["name"]."</td>";       

    $ret=$ret."<td align=center><a href='index.php?sity=1&id=".$aRow["id"]."'>

    <img src='images/action/char.png' width='16' height='16'>

    </a></td></tr>";

   }

   $ret=$ret."</table>";

   mysql_free_result($aRes);

  }

  else

  {

   $ret=$ret."<center>Помилка при роботі з базою даних</center>";

  }

 }

}

mysql_close($adb);

return $ret;

}

function edit_sity($id_g)

{

$ret="";

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {      

  $aSql="select * from sity where id=".$id_g;

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {    

   if($aRow=mysql_fetch_array($aRes))

   {    

    $ret="<form action='index.php?sity=2&id=".$aRow["id"]."' method='post'>

      <table class='contentpaneopen'>

    ";     

    $ret=$ret." <tr><td>Назва міста:</td>

       <td><INPUT TYPE=text SIZE=50 NAME=sity_name VALUE='".$aRow["name"]."'></td></tr>

          <tr><td colspan=2><INPUT TYPE=submit name='Submit' VALUE='Зберегти'></td></tr>

      </table></form>";

   }    

   mysql_free_result($aRes);

  }   

 }

}

mysql_close($adb);

return $ret;

}

function add_sity()

{

$ret="<form action='index.php?sity=2' method='post'>

   <table class='contentpaneopen'>     

  <tr><td>Назва міста:</td>

  <td><INPUT TYPE=text SIZE=50 NAME='sity_name'></td></tr>

  <tr><td colspan=2><INPUT TYPE=submit name='Submit' VALUE='Зберегти'></td></tr>

   </table></form>";

return $ret;

}

function save_sity($id_g,$key)

{

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {    

  if($key==1)

   $aSql="update sity set name='".$_POST['sity_name']."' where id=".$id_g;

  else

   $aSql="insert into sity(name) values('".$_POST['sity_name']."')";   

  $aRes=mysql_query($aSql,$adb);   

  if($aRes==true)

   $ret=$ret."<center>Дані успішно внесені в базу даних</center>";

  else

   $ret=$ret."<center>Помилка при внесені даних</center>";   

 }

}

mysql_close($adb);

return $ret;

}

//================================================

//==============================================================

function show_oplata()

{

$ret="";

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {

  $aSql="select * from type_oplaty";

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {

   $ret="<table class='contentpaneopen' border=1 BORDERCOLOR='#d7d7d7' RULES='All' >

     <tr class='small' BGCOLOR='#eff2f3' align=center>

      <td>№</td>

      <td>Форма отримання</td>       

      <td>Ред.</td>

     </tr>";

   while($aRow=mysql_fetch_array($aRes))

   {

    $ret=$ret."<tr class='small'>";

    $ret=$ret."<td>".$aRow["id"]."</td>

          <td>".$aRow["name_oplaty"]."</td>";      

    $ret=$ret."<td align=center><a href='index.php?opl=1&id=".$aRow["id"]."'>

    <img src='images/action/char.png' width='16' height='16'>

    </a></td></tr>";

   }

   $ret=$ret."</table>";

   mysql_free_result($aRes);

  }

  else

  {

   $ret=$ret."<center>Помилка при роботі з базою даних</center>";

  }

 }

}

mysql_close($adb);

return $ret;

}

function edit_oplata($id_g)

{

$ret="";

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {      

  $aSql="select * from type_oplaty where id=".$id_g;

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {    

   if($aRow=mysql_fetch_array($aRes))

   {    

    $ret="<form action='index.php?opl=2&id=".$aRow["id"]."' method='post'>

      <table class='contentpaneopen'>

    ";     

    $ret=$ret." <tr><td>Форма отримання:</td>

       <td><INPUT TYPE=text SIZE=50 NAME=oplaty_name VALUE='".$aRow["name_oplaty"]."'></td></tr>

          <tr><td colspan=2><INPUT TYPE=submit name='Submit' VALUE='Зберегти'></td></tr>

      </table></form>";

   }    

   mysql_free_result($aRes);

  }   

 }

}

mysql_close($adb);

return $ret;

}

function add_oplata()

{

$ret="<form action='index.php?opl=2' method='post'>

   <table class='contentpaneopen'>     

  <tr><td>Форма отримання:</td>

  <td><INPUT TYPE=text SIZE=50 NAME='oplaty_name'></td></tr>

  <tr><td colspan=2><INPUT TYPE=submit name='Submit' VALUE='Зберегти'></td></tr>

   </table></form>";

return $ret;

}

function save_oplata($id_g,$key)

{

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {    

  if($key==1)

   $aSql="update type_oplaty set name_oplaty='".$_POST['oplaty_name']."' where id=".$id_g;

  else

   $aSql="insert into type_oplaty(name_oplaty) values('".$_POST['oplaty_name']."')";   

  $aRes=mysql_query($aSql,$adb);   

  if($aRes==true)

   $ret=$ret."<center>Дані успішно внесені в базу даних</center>";

  else

   $ret=$ret."<center>Помилка при внесені даних</center>";   

 }

}

mysql_close($adb);

return $ret;

}

//==============================================================

function ret_menu_tovar()

{

$m_el1 [1][1]="index.php?tovar=0";  $m_el1 [1][2]="Товар";

$m_el1 [2][1]="index.php?tovar=1";  $m_el1 [2][2]="::новий товар";

$m_el1 [3][1]="index.php?gt=0";   $m_el1 [3][2]="Група товарів";

$m_el1 [4][1]="index.php?gt=1";   $m_el1 [4][2]="::нова група";

$m_el1 [5][1]="index.php?gc=0";   $m_el1 [5][2]="Компанії";

$m_el1 [6][1]="index.php?gc=1";   $m_el1 [6][2]="::нова компанія";

$m_el1 [7][1]="index.php?sity=0";  $m_el1 [7][2]="Міста";

$m_el1 [8][1]="index.php?sity=1";  $m_el1 [8][2]="::нове місто";

$m_el1 [9][1]="index.php?opl=0";  $m_el1 [9][2]="Форми отримання";

$m_el1 [10][1]="index.php?opl=1";  $m_el1 [10][2]="::нова форма";

return $m_el1;

}

//=======================================

function main_tov()

{

if(isset($_GET['tovar']))

{

 switch($_GET['tovar'])

 {

  case 0:

   $ret=show_tovar();

   break;

  case 1:

   if(isset($_GET['id']))

    $ret=edit_tovar($_GET['id']);

   else

    $ret=add_tovar();

   break;

  case 2:

   if(isset($_POST['Submit']))

   {

    if(isset($_GET['id']))

     $ret=save_tovar($_GET['id'],1);

    else

     $ret=save_tovar("",0);

   }

   break;

 }

}

else

{

 if(isset($_GET['gt']))

 {

  switch($_GET['gt'])

  {

   case 0:

    $ret=show_group_t();

    break;

   case 1:

    if(isset($_GET['id']))

     $ret=edit_group_t($_GET['id']);

    else

     $ret=add_group_t();

    break;

   case 2:

    if(isset($_POST['Submit']))

    {

     if(isset($_GET['id']))

      $ret=save_group_t($_GET['id'],1);

     else

      $ret=save_group_t("",0);

    }

    break;     

  }  

 }

 else

 {   

  if(isset($_GET['gc']))

  {

   switch($_GET['gc'])

   {

    case 0:

     $ret=show_group_c();

     break;

    case 1:

     if(isset($_GET['id']))

      $ret=edit_group_c($_GET['id']);

     else

      $ret=add_group_c();

     break;

    case 2:

     if(isset($_POST['Submit']))

     {

      if(isset($_GET['id']))

       $ret=save_group_c($_GET['id'],1);

      else

       $ret=save_group_c("",0);

     }

     break;     

   }  

  }

  else

  {

   if(isset($_GET['sity']))

   {

    switch($_GET['sity'])

    {

     case 0:

      $ret=show_sity();

      break;     

     case 1:

      if(isset($_GET['id']))

       $ret=edit_sity($_GET['id']);

      else

       $ret=add_sity();

      break;

     case 2:

      if(isset($_POST['Submit']))

      {

       if(isset($_GET['id']))

$ret=save_sity($_GET['id'],1);

       else

        $ret=save_sity("",0);

      }

      break;     

    }  

   }

   else

   {

    if(isset($_GET['opl']))

    {

     switch($_GET['opl'])

     {

      case 0:

       $ret=show_oplata();

       break;    

      case 1:

       if(isset($_GET['id']))

$ret=edit_oplata($_GET['id']);

       else

        $ret=add_oplata();

       break;

      case 2:

       if(isset($_POST['Submit']))

       {

        if(isset($_GET['id']))

         $ret=save_oplata($_GET['id'],1);

        else

         $ret=save_oplata("",0);

       }

       break;     

     }  

    }  

   }

  }

 }

}

return $ret;

}

//=======================================

?>


Zamov.php

<?php

function show_zamov()

{

$ret=$ret." <table class='contentpaneopen'>

       <tbody>

       <tr>

       <td class='contentheading' width='100%'>Оформлення замовлення</td>    

       </tr></tbody>

      </table>

   

   <div class='module'>

   <div><div><div>

    <form action='index.php?zamov=1' method='post'>

     <table>

      <tr class='small'>

       <td>Імя<font color='#ff0000'>*</font></td>

       <td>

        <INPUT  TYPE=text SIZE=30 NAME=user_name VALUE=''>

       </td>

      </tr>       

      <tr class='small'>

       <td>Привізвище<font color='#ff0000'>*</font></td>

       <td>

        <INPUT TYPE=text SIZE=30 NAME=user_secname VALUE=''>

       </td>

      </tr>

      <tr class='small'>

       <td>Місто<font color='#ff0000'>*</font></td>

       <td>";

      

      $adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

      if(!empty($adb))

      {

       if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

       {

        $aSql="select id,name from sity";

        $aRes=mysql_query($aSql,$adb);

        if($aRes==true)

        {

         $ret=$ret."<SELECT NAME='sity_id'>";

         while($aRow=mysql_fetch_array($aRes))

         {

          $ret=$ret."<OPTION VALUE='".$aRow["id"]."'>".$aRow["name"];    

         }

         $ret=$ret."</SELECT>";

         mysql_free_result($aRes);

        }   

       }

      }

      mysql_close($adb);  

      $ret=$ret."</td></tr>

      <tr class='small'>

       <td>Вулиця<font color='#ff0000'>*</font></td>

       <td>

        <INPUT TYPE=text SIZE=30 NAME=user_street VALUE=''>

       </td>

      </tr>    

      <tr class='small'>

       <td>Будинок<font color='#ff0000'>*</font></td>

       <td>

        <INPUT TYPE=text SIZE=10 NAME=user_home VALUE=''>

       </td>

      </tr>

      <tr class='small'>

       <td>Квартира</td>

       <td>

        <INPUT TYPE=text SIZE=10 NAME=user_flat VALUE=''>

       </td>

      </tr>   

      <tr class='small'>

       <td>Почтовий індекс<font color='#ff0000'>*</font></td>

       <td>

        <INPUT TYPE=text SIZE=10 NAME=user_post VALUE=''>

       </td>

      </tr>

      <tr class='small'>

       <td>Телефон<font color='#ff0000'>*</font></td>

       <td>

        <INPUT TYPE=text SIZE=10 NAME=user_phone VALUE=''>

       </td>

      </tr>";

      

      $ret=$ret."<tr class='small'>

      <td>Спосіб отримання<font color='#ff0000'>*</font></td>

      <td>";

      

      $adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

      if(!empty($adb))

      {

       if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

       {

        $aSql="select * from type_oplaty";

        $aRes=mysql_query($aSql,$adb);

        if($aRes==true)

        {

         $ret=$ret."<SELECT NAME='oplaty_id'>";

         while($aRow=mysql_fetch_array($aRes))

         {

          $ret=$ret."<OPTION VALUE='".$aRow["id"]."'>".$aRow["name_oplaty"];    

         }

         $ret=$ret."</SELECT>";

         mysql_free_result($aRes);

        }   

       }

      }

      mysql_close($adb);  

      $ret=$ret."</td> </tr>";       

      $ret=$ret."<tr class='small'>        

       <td colspan=2>

        <INPUT TYPE=submit name='Submit' VALUE='Відправити замовлення'>

       </td>

      </tr>

     </table>

    </form>     

   </div></div></div>

   </div>";

return $ret;

}

function save_zamov()

{  

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {

  $aSql="insert into zamovnik(name,second_name,id_sity,street,home,flat,post_code,phone)

  values(

   '".$_POST['user_name']."',

   '".$_POST['user_secname']."',

   ".$_POST['sity_id'].",

   '".$_POST['user_street']."',

   '".$_POST['user_home']."',

   '".$_POST['user_flat']."',

   '".$_POST['user_post']."',

   '".$_POST['user_phone']."')";

   

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {

   $id_zamovnik=mysql_insert_id($adb);

   

   //mysql_free_result($aRes);

   

   $aSql="insert into zamov(data_zamov,id_zamovnika,id_oplaty)

        values('".date("Y-m-d")."',".$id_zamovnik.",".$_POST['oplaty_id'].")";

   $aRes=mysql_query($aSql,$adb);

   if($aRes==true)

   {

    $id_zamov=mysql_insert_id($adb);    

         

    $size_k=sizeof($_SESSION['_SEL_T']);

    for($i=1;$i<=$size_k;$i++)

    {

     $aSql="insert into zamov_tovar(id_zamov,id_tovar,count_tovar)

                values(".$id_zamov.",".$_SESSION['_SEL_T'][$i].",1)";      

     $aRes=mysql_query($aSql,$adb);

     if($aRes==true)

     {       

      $aSql="update tovar set count=count-1 where id=".$_SESSION['_SEL_T'][$i];

      $aRes=mysql_query($aSql,$adb);

      if($aRes==true)

      {      

      }

     }       

    }     

    $ret=

     "

     <table class='contentpaneopen'>

     <tbody>

     <tr>

     <td class='contentheading' width='100%'>Дякуємо</td>    

     </tr></tbody>

     </table>

     <div class='module'>

      <div>

       <div>

        <div>

         <img class='speakers' src='images/action/email.png'>

         <strong>Ваше замовлення відправлене</strong>

        </div>

       </div>

      </div>

     </div>

     ";

    $_SESSION['_SEL_T']=null;    

   }

  }

  else

   $ret="<center>Помилка в ведених даних</center>";

 }

}

mysql_close($adb);

return $ret;

}

//===============================================

function main_zamov()

{

if(isset($_GET['zamov']))

{

 switch ($_GET['zamov'])

 {

  case 1:

   $ret=save_zamov();

   break;

  default:

   $ret=show_zamov();

 }

}

return $ret;

}

//===============================================

?>


main.php

<?php

function login_show()

{

$ret=

"

 <table class='contentpaneopen'>

 <tbody>

 <tr>

 <td class='contentheading' width='100%'>Вхід в систему</td>    

 </tr></tbody>

 </table>

 <div class='module'>

  <div>

   <div>

    <div>

     <img class='speakers' src='images/action/amsn.png'>    

     <form  action='index.php?main=5' method='post'>

     <table>

      <tr class='small'>

       <td>Login:</td>

       <td><INPUT TYPE=text SIZE=20 NAME=login VALUE=''></td>

      </tr>

      <tr class='small'>

       <td>Password:</td>

       <td><INPUT TYPE=password SIZE=20 NAME=password MAXLENGTH=10></td>

      </tr>

      <tr class='small'>

       <td colspan=2><INPUT TYPE=submit name='Submit' VALUE='  Ok  '></td>

      </tr>

     </table>

     </form>

    </div></div></div></div>

";

return $ret;

}

function login_awtorize($login,$pass)

{

$adb=mysql_connect($_SESSION['_DB'],$_SESSION['_DB_USER'],$_SESSION['_DB_PASS']);

if(!empty($adb))

{

 if(mysql_select_db($_SESSION['_DB_NAME'],$adb))

 {

  $aSql="select * from users where login='".$login."' and pass='".$pass."'";

  $aRes=mysql_query($aSql,$adb);

  if($aRes==true)

  {    

   if($aRow=mysql_fetch_array($aRes))

   {

    $_SESSION['_USER']="admin";

   }    

   mysql_free_result($aRes);

  } } }

return $ret;

}

function login_close()

{

$_SESSION['_USER']="guest";

}

//======================================

function main_login()

{

if(isset($_GET['main']))

{

 switch($_GET['main'])

 {

  case 5:

   if(isset($_POST['Submit']))

   {

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

login_awtorize($_POST['login'],$_POST['password']);

   }

   else

    $ret=login_show();

   break;

  case 6:

   login_close();break;

 } }

return $ret;

}

//======================================

?>


 

А также другие работы, которые могут Вас заинтересовать

18673. Измерительные усилители на ОУ 57.54 KB
  Измерительные усилители на ОУ. Измерительный усилитель должен иметь: 1. Большое входное сопротивление; 2. Большой коэффициент ослабления синфазного сигнала; 3. Большой и регулируемый коэффициент усиления Рассмотрим случай когда измеряется температура с помощью мостов...
18674. Фотоэлектрические измерения 31.83 KB
  Фотоэлектрические измерения. Фотоэлектрические измерения применяются в медицине телекоммуникационных системах оптоволоконной связи датчиках положения лазерных принтерах и т.д. Одним из наиболее распространенных фотоэлектрических датчиков является полупроводн
18675. Сигма-Дельта ЦАП 40.18 KB
  СигмаДельта ЦАП. Развитие цифровой звукозаписи резко повышало требования к ЦАП. Высококачественная запись имеет динамический диапазон превышающий 96дБ. Это требование преобразователей имеющих не менее 17 разрядов. Первоначально в цифровых системах звукозаписи полу
18676. Параметры ЦАП 50.72 KB
  Параметры ЦАП. Параметры и характеристики ЦАП определяют их точность и быстродействие. Основным точностным параметром является понятие разрешающей способности преобразователя. Разрешающая способность в первую очередь определяется разрядностью входного цифрового ...
18677. Стратегия построения модели и основные этапы моделирования 19.56 KB
  Стратегия построения модели и основные этапы моделирования. Принципы построения математической модели: 1. Адекватность – соответствие модели целям исследования по уровню сложности и организации а также соответствие реальной системе относительно выбранного множест
18678. Прямые, косвенные, совокупные, совместные измерения 15.06 KB
  Прямые косвенные совокупные совместные измерения. Измерение – совокупность операций по применению технического средства хранящего единицу физической величины обеспечивающих нахождение соотношения измеряемой величины с единицей и получения значения этой величин
18679. Создание подпрограмм ВП 16.88 KB
  Создание подпрограмм ВП. Виртуальный прибор используемый внутри другого виртуального прибора называется подпрограммой ВП. Использование подпрограмм ВП помогает легко управлять изменениями и отладкой блокдиаграмм. После того как ВП сформирован создана его иконка...
18680. Структуры в среде LabVIEW 19.12 KB
  Структуры. Структуры на блокдиаграмме используются для повторяющихся операций над потоками данных для выполнения операций над данными в определенном порядке и наложения условий выполнения операций. Среда LabVIEW содержит следующие структуры: цикл While по условию цикл ...
18681. Информационные процессы в ЦА 46.41 KB
  Информационные процессы в ЦА. 1. Представление информации – это кодирование на какихлибо носителях. Т.к. информация представляется сигналами возникает задача рационального представления информации в аналоговом цифровом или аналогоцифровом АЦ смешанном виде. Ха...