Розробка гнучкої інтегрованої системи автоматизації діяльності контрольно-пропускних пунктів

Розробка системи, що виконує функцію автоматизації процесу пропускного пункту підприємства з використанням мов програмування PHP, JavaScript і MySql. Практичні аспекти проектування ГІС із використанням WEB-технологій і баз даних, тестування програми.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 25.10.2012
Размер файла 1,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

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

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

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

2.3.3 Системи управління файлами

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

Системи управління файлами не можна класифікувати як СУБД, тому що звичайно вони є частиною операційною систем і нічого не знають про внутрішній уміст файлів. Це знання закладене в прикладних програмах, що працюють із файлами. Як приклад можна привести таблицю користувачів UNIX, що зберігається у файлі /etc/passwd. Програми, що звертаються до цього файлу, знають, що в його першому полі перебуває ім'я користувача, що кінчається двокрапкою. Якщо додатку потрібно відредагувати цю інформацію, воно повинне безпосередньо відкрити файл і подбати про правильне форматування полів.

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

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

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

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

2.3.4 Ієрархічні бази даних

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

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

Рис. 2.2 Головне вікно середовища розробки

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

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

2.3.5 Мережні бази даних

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

Випливаючи специфікації CODASYL, мережна модель підтримує DDL (Data Definition Language - мову визначення даних) і DML (Data Manipulation Language - мова обробки даних). Це спеціальні мови, призначені для визначення структури бази даних і складання запитів. Незважаючи на їхню наявність, програміст як і раніше повинен знати структуру бази даних.

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

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

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

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

2.3.6 Реляційні бази даних

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

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

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

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

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

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

2.3.7 Об'єктно-орієнтовані бази даних

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

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

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

За допомогою ООБД вирішуються дві проблеми. По-перше, складні

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

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

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

2.3.8 Об'єктно-реляційні бази даних

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

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

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

2.3.9 Основні характеристики MySql

Основними характеристиками MySql є:

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

· Клієнтські програми можуть працювати не тільки в режимі командного рядка. Є й графічні клієнти, наприклад MySql GUI, PhpMyAdmin й ін. Але вони - тема окремого курсу.

· MySql взаємодіє з базою даних мовою, називаному SQL (Structured Query Language - мова структурованих запитів).

· SQL призначений для маніпуляції даними, які зберігаються в Системах управління реляційними базами даних (RDBMS). SQL має команди, за допомогою яких дані можна витягати, сортувати, обновляти, видаляти й додавати. Стандарти мови SQL визначає ANSI (American National Standards Institute). У цей час діє стандарт, прийнятий в 2003 році (SQL-3).

· SQL можна використати з такими RDBMS як MySql, mSQL, PostgreSQL, Oracle, Microsoft SQL Server, Access, Sybase, Ingres. Ці системи RDBMS підтримують всі важливі й загальноприйняті оператори SQL, однак кожна з них має безліч своїх власних патентованих операторів і розширень.

· SQL є загальною мовою запитів для декількох баз даних різних типів. Даний курс розглядає систему MySql, що є RDBMS c відкритим вихідним кодом, доступної для завантаження на сайті MySql.com.

· MySql - це система управління реляційними базами даних.

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

Програмне забезпечення MySql - це ПЗ з відкритим кодом.

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

Технічні можливості СУБД MySql:

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

Безпека:

Система безпеки заснована на привілеях і паролях з можливістю верифікації з вилученого комп'ютера, за рахунок чого забезпечується гнучкість і безпека. Паролі при передачі по мережі при з'єднанні із сервером шифруються. Клієнти можуть з'єднуватися з MySql, використовуючи сокети TCP/IP, сокети Unix або іменовані канали (named pipes, під NT)

Місткість даних:

Як можна бачити, розмір таблиці в базі даних MySql звичайно лімітується операційною системою. За замовчуванням MySql-таблиці мають максимальний розмір близько 4 Гб. Для будь-якої таблиці можна перевірити/визначити її максимальний розмір за допомогою команд SHOW TABLE STATUS або myisamchk -dv table_name. Якщо більша таблиця призначена тільки для читання, можна скористатися myisampack, щоб злити кілька таблиць в одну й стиснути неї. Звичайно myisampack зжимає таблицю принаймні на 50%, тому в результаті можна одержати дуже більші таблиці.

2.4 JavaScript

Javascript є мовою сценаріїв (скриптів), який застосовують в основному для створення на Web-Сторінках інтерактивних елементів. Його можна використовувати для побудови меню, перевірки правильності заповнення форм, зміни зображень або для чогось ще, що можна зробити на Web-Сторінці. Якщо глянути на Google Maps або службу Gmail компанії Google, то можна зрозуміти, на що здатний сьогодні мова Javascript.

Тому що Javascript є в цей час єдиною мовою сценаріїв, яку підтримують усі основні браузери Web (Internet Explorer, Firefox, Netscape, Safari, Opera, Camino і т.д.), те він використовується дуже широко.

Код Javascript звичайно виконується Web-браузером клієнта, і в цьому випадку він називається сценарієм на стороні клієнта. Але код Javascript можна виконувати також на Web-сервері для формування документів HTML,

втілюючи тим самим сценарій на стороні сервера. Хоча використання Javascript звичайно обмежується сценаріями на стороні клієнта, він є також дуже потужною серверною мовою.

При створенні коду Javascript потрібно фактично тільки текстовий редактор і Web-браузер. Знання HTML і CSS буде відіграти виразно позитивну роль, і якщо ви захочете використовувати навички Javascript на Web-сайті, то знадобиться також Web-сайт. Якщо у вас уже є Web-сайт, то відмінно! Якщо ні, то існує безліч безкоштовних серверів, які можна використовувати для розміщення своїх сторінок.

Що стосується текстового редактора, то в Windows є редактор Notepad. Хоча цього буде досить для редагування Javascript, HTML і CSS, могутніший редактор, такий, наприклад, як Editplus або іншої, може виявитися більш зручним.

2.4.1 Можливості мови

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

Незважаючи на схожий із С синтаксис, Javascript у порівнянні з мовою С має корінні відмінності:

· об'єкти, з можливістю інтроспекції;

· функції як об'єкти першого класу;

· автоматичне приведення типів;

· автоматичне складання сміття;

· анонімні функції.

У мові відсутні такі корисні речі, як:

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

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

· стандартні інтерфейси до Web-серверів і базам даних;

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

2.4.2 Семантика і синтаксис

Синтаксис мови Javascript багато в чому нагадує синтаксис С й Java, семантично ж мова набагато ближче до Self, Smalltalk або навіть Ліспу.

В Javascript:

· усі ідентифікатори регістрозалежні,

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

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

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

Структура мови

· Структурно Javascript можна представити у вигляді об'єднання трьох чітко помітних друг від друга частин:

· ядро (Ecmascript),

· об'єктна модель браузера (Browser Object Model або BOM (de)),

· об'єктна модель документа (Document Object Model або DOM).

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

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

Ядро

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

Об'єктна модель браузера

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

Крім управління вікнами, у рамках об'єктної моделі браузера, браузерами звичайно забезпечується підтримка наступних сутностей:

· управління фреймами,

· підтримка затримки у виконанні коду й зациклення із затримкою,

· системні діалоги,

· управління адресою відкритої сторінки,

· управління інформацією про браузер,

· управління інформацією про параметри монітора,

· обмежене управління історією перегляду сторінок,

· підтримка роботи з HTTP cookie.

Об'єктна модель документу

Об'єктна модель документа -- інтерфейс програмування додатків для HTML і Xml-Документів. Згідно DOM документу можна поставити у відповідність дерево об'єктів, що володіють рядом властивостей, які дозволяють робити з ним різні маніпуляції:

· одержання вузлів,

· зміна вузлів,

· зміна зв'язків між вузлами,

· видалення вузлів.

2.4.3 Безпека

Javascript дозволяє потенційним авторам шкідливого коду запускати його на будь-якому комп'ютері мережі: для цього досить відкрити на ньому Web-сторінку. Це обумовлює наявність двох принципових обмежень:

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

· для Javascript-Коду застосовується політика загального походження, відповідно до якої скрипт, вбудований у сторінку, не може одержати доступ до ряду властивостей об'єктів іншої сторінки ( зокрема, до більшості властивостей об'єкта document) при відмінності в протоколі, хості й номері порту цих сторінок.

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

Міжсайтові уразливості

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

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

Іншим типом міжсайтові уразливості є підробка міжсайтових запитів або CSRF. Вона полягає в можливості сайту зловмисника змусити браузер користувача здійснити небажана дія на цільовому сайті (наприклад, банківське переведення грошей). Така можливість є, якщо цільовий сайт покладається тільки на HTTP cookie або запити авторизації. У цьому випадку запити, ініціалізовані кодом сайту зловмисника виконуються так само як запити користувача, якщо він авторизований на цільовому сайті. Одним із засобів захисту від CSRF є здійснення аутентифікації при будь-якому запиті, який приводить до необоротних наслідків. Також може допомогти аналіз HTTP referer.

Недоречна довіра на стороні клієнта

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

Помилки в браузері, плагинах і розширеннях

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

Подібні помилки виявлялися в часто використовуваних браузерів, включаючи Mozilla Firefox, Internet Explorer, Safari. При виявленні потенційно небезпечних помилок у браузері й наявності відомостей про реалізовані експлойтів фірма-виробник і експерти по безпеці рекомендують відключати Javascript до виходу патчу.

Плагіни, такі як плеєри, Macromedia Flash і ряд Activex компонент, доступних за замовчуванням в Internet Explorer, можуть також містити помилки, експлуатовані за допомогою Javascript, що вже траплялося раніше.

Розширення Mozilla Firefox не ізольовані друг від друга: одне розширення може виправляти інше, що може використовуватися зловмисниками. На конференції Securitybyte & Owasp Appsec Asia 2009 Роберто Саггі Ліверані (Roberto Suggi Liverani) and Ник Фрімен (Nick Freeman) продемонстрували три эксплойти у популярних розширеннях Firefox, завантажені із сайту більш 30 мільйонів раз.

Помилки реалізації пісочниці

Браузери можуть запускати Javascript поза пісочницею із привілеями, необхідними для створення й видалення файлів, наприклад. Однак такі привілеї не повинні даватися коду з Web.

Неправильне наділення привілеями Javascript з Web служило причиною уразливостей як Internet Explorer, так і Mozilla Firefox.

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

3. Порівняльний аналіз переваг мови програмування PHP І СУБД MYSQL

3.1 Порівняльний аналіз PHP і ASP. Переваги PHP

Active Server Pages (ASP) - технологія Microsoft для відображення динамічних Web сторінок. ASP підтримують багато мов; найпоширеніший - Vbscript. PHP є альтернативою з відкритою архітектурою для багатьох операційних систем, включаючи Linux і Windows.

Наведу вісім причин, чому для розробки ГІС була обрана мова програмування PHP:

1. Швидкість

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

ASP можливо ніколи не буде так само швидкий, як PHP. ASP побудований на базі COM архітектури. Коли програміст на ASP використовує Vbscript, він запускає COM об'єкт. Коли він пише додатку-клієнтові, він викликає метод Write Com-об'єкта Response. При доступі в базу даних, він використовує інший Com-об'єкт. Для доступу у файлову систему, викликається інший Com-об'єкт. Уся ця Com-Навантаження додається й сповільнює роботу.

У модулях PHP, усе запускається в області пам'яті PHP. Це означає, що код PHP буде виконуватися швидше, тому що немає витрат на зв'язок з різними Com-об'єктами в різних процесах.

Наступний тест продуктивності, де 40 раз виконується оператор Select Размещено на http://www.allbest.ru/

на Microsoft SQL Server 7, з використанням розширення MSSQL7, Odbc-Розширення для РНР і COM, покаже те, що є через: PHP звертається до MSSQL7 ( чим менше значення, тем краще)

MSSQL - розширення РНР 01.88 сек.

ODBC - розширення РНР 09.54 сек.

ODBC через COM (ADO) 17.28 сек.

OLEDB через COM 06.19 сек.

При звертанні до бази Odbc-Розширення РНР, час запиту склав 9.54 секунд. Використовуючи COM інтерфейс для з'єднання з ODBC з'являються витрати в 80% (17.28 сек).

OLEDB - сама високошвидкісна Сом-Технологія Microsoft для доступу в бази даних. Вона швидше ODBC, однак при використанні розширення PHP для MSSQL ми маємо 200% приріст продуктивності.

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

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

2. Чудова робота з пам'яттю

У моделі ASP(в IIS 4), якщо Asp-Файл header.asp включений в 20 сторінок, тоді в пам'яті втримуються 20 скомпільованих копій header.asp . IIS 5 застосовує поліпшену модель для роботи з пам'яттю, але тільки користувачі Windows 2000 перейти на цю версію через несумісність із IIS 4, і Windows NT 4.0 не може працювати з IIS 5.Це означає, що багато Web сервера як і раніше будуть використовувати гіршу модель для роботи з пам'яттю. PHP завантажує тільки необхідні include файли.

3. Відсутність схованих витрат

Коли виникає нестаток шифрування в ASP - доводиться купувати Aspencrypt. Потрібна робота з поштою - купуйте Serverobject Qmail. Потрібна накачування файлів на сервер - купуйте Software Artisans Sa-fileup. В PHP усе це вбудоване й до того ж безкоштовно.

4. Інтеграція з MySql

Інтеграція PHP з MySql просто чудова. Існує безліч утиліт на PHP для роботи з базами даних MySql. Набір властивостей найбільш повний у порівнянні з іншими базами даних.

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

Для порівняння Microsoft Access набагато повільніше чому MySql. SQL Server 7 і Oracle також швидкі, але коштують набагато дорожче.

Багато експертів по базах даних говорять наскільки нерозумно порівнювати MySql з Oracle і іншими високопродуктивними базами. Це йде від базового нерозуміння принципів функціонування більшості Web-сайтів. Багато Web-сайтів обслуговують тисячі сторінок у день, але здійснюють мало змін даних. І типовою транзакцією є разова зміна таблиці користувачів або повідомлень форуму. У такий спосіб база даних зі швидкими SELECT і гарними INSERT і UPDATE як в MySql, є оптимальним розв'язком для це середовища.

5. Близькість до Java/C++ стилю програмування

Переваги даного твердження є всього лише моєю думкою. Я згодний, що ви не переконаєте програміста Visual Basic перейти на PHP тільки через подібність зі стилем мов C або Java. Але можна переконати аматора C++ або Java, що PHP краще й легше для вивчення, чому Vbscript.

PHP також має непогану підтримку для модульного програмування в класах. Використання класів як і раніше рідко в Vbscript внаслідок його важкої спадщини. Споріднення PHP з Java і C++ забезпечує більша кількість програмістів, що постійно використовують класи.

6. Відсутність проблем з виправленням помилок

Тому що ASP має закритий вихідний код, то при виявленні якоїсь помилки прийде писати в Microsoft із проханням виправити помилку.

В PHP, навіть якщо у вас немає рівня знань для виправлення помилки, те виразно можна знайти експертів. Серйозних помилок PHP немає.

7. Стратегія міжплатформеної міграції

PHP портований практично під усі розповсюджені операційні системи, у той час як ASP.NET орієнтований на Windows, і те не всяку, а тільки 2000/XP/Vista/Seven. Тобто не потрібно турбуватися, яка операційна система стоїть на сервері використовуваного клієнта.

Немає надмірної прив'язки до операційної системи. Навіть під Windows PHP може встановлюватися простим копіюванням, не записуючи нічого до багатостраждального реєстру, не вимагаючи створення спеціальних груп користувачів і т.п. Після переустановки операційної системи Вам не буде потрібно довго «піднімати» PHP і проекти, по них написані. Скажемо, в Windows розумно встановити Apache, PHP і MySql на не-системному диску. Навіть після форматування системного розділу (C:) і установки Windows заново нам знадобиться не більш трьох хвилин для відновлення: знову інсталювати Apache як службу (командою apache -k install) і відновити список віртуальних хостів (файл %System32%/drivers/etc/hosts). І все, інцидент вичерпаний...

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

8. Простота переходу на інші версії

Перехід PHP проекту на нову версію PHP можливий або взагалі без змін (саме цим мені запам'ятався перехід з PHP 4.x на PHP 5.x), або з мінімальними доробками, зв'язаними, як правило, зі змінами настроювань за замовчуванням (не буду довго зупинятися на тому, що покладатися на настроювання за замовчуванням - дурний тон у програмуванні). А випадку з ASP.NET (див. статтю англійською мовою про перехід з ASP.NET 1.0 на ASP.NET 2.0) ми бачимо, що проект треба повністю переробити.

Інші середовища розробки від Microsoft також створюють багато незручностей при переході проекту на нову версію. Наприклад, недавно MS Access перестав підтримувати Odbcdirect, що створило безліч незручностей для тих, хто програмував на ньому. З MySql таких незручностей ніколи не було, і сподіваюся не буде.

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

3.2 Порівняння MySql і PostgreSql з погляду розроблювача

У дослідженні представлений порівняльний аналіз двох безкоштовні вільні систем управління базами даних (СУБД): MySql і PostgreSql. Аналіз ведеться з погляду використання цих СУБД у мало й середньонавантажених проектах. Не розглядаються питання масштабування й оптимізації під проекти з багатомільйонними аудиторіями. Не приводяться дані порівняння продуктивності. Розглядаються MySql 5.1 і PostgreSql 8.3.

Типи даних

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

Цілі числа й числа із плаваючою крапкою

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

Рис. 3.1 Інформаційна ємність у байтах

Примітка:

1) В MySql є підтримка UNSIGNED типів, однак це не входить у стандарт SQL.

2) Для типів із плаваючою крапкою PostgreSql використовує формат стандарту IEEE 754, тому можна зберігати значення +Inf, -Inf і Nan, однак використовувати ці значення в математичних операціях не вийде.

Як видне з таблиці, типи даних практично ідентичні для двох СУБД. Відмінності полягають у тому, що MySql дозволяє більш детально використовувати доступну пам'ять, але при цьому робота із числами в символьній виставі обмежено 65 цифрами. Я не бачу жодного практичного застосування числам з такою кількістю знаків, тому можна вважати що можливості MySql і PostgreSql у даному розділі ідентичні.

Рядки й дані

Розміри вказуються в байтах. Не забувайте, що для одного символу UTF-8 може використовуватися від 1 до 4 байт.

Рис. 3.1 Ємність рядків у байтах

* обмеження викликане максимальною довжиною рядка, рівної 65535 байтам, але в реальності максимальна довга набагато менше.

З таблиці видне, що по ємності строкові типи даних у дві СУБД практично не різняться, і знову MySql дозволяє більш детально контролювати формат зберігання даних на жорсткому диску. Однак ця гнучкість MySql уводить дві невеликі проблеми на етапі проектування: сум'яття в типах і розмірах даних.

Щоб не бути голослівним приведу приклад -- зберігання даних користувача. Припустимо, що нам треба було зберігати про користувача не тільки його ім'я, прізвище й по батькові, але адреса й телефони, так чи мало що ми можемо запропонувати зберігати користувачеві у своєму профілі. З погляду SQL для цього повинні використовуватися типи CHAR і VARCHAR. І от отут в MySql доводиться вирішувати яка максимальна довга в прізвища, яке максимальне довге в імені, яка максимальна довга в адреси, тому що на все про все дано 65535 байт. У той же час в PostgreSql ми просто вказуємо в якості типу для всіх стовпців таблиці VARCHAR, куди ми якщо буде потреба можемо укласти набагато більше даних, чому нам дозволяє MySql. (Попрошу не пропонувати використовувати TEXT в MySql для цих цілей.)

Дата й час

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

Нестандартні типи

Для бажаючих PostgreSql пропонує цілу групу типів даних для роботи, які геть-чисто відсутні в MySql: масиви, структури, типи для зберігання IP і MAC адрес, і навіть типи для зберігання параметрів геометричних фігур. Бажаючі можуть самостійно ознайомитися з типами даних PostgreSql.

Виводи по типах даних

1) Типи даних, пропоновані двома СУБД, з функціональної точки зору ідентичні.

2) За допомогою цих типів можна зберігати дані в кожній із СУБД, однак в MySql розроблювач змушений на самому початковому етапі проектування штучно обмежувати довжину строкових даних, що не позначається позитивно на зручності користування системою.

3) Використання нестандартних типів в PostgreSql дозволяє досить сильно спростити розробку, однак ускладнить перехід на іншу СУБД.

4) MySql дозволяє точно контролювати структуру збережених даних, однак при цьому жертвується зручністю розроблювача.

Можливості управління даними

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

Збережені процедури

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

Індекси й ключі

На цьому фронті MySql теж не блищить своїми можливостями. Обмеження в 1000 байт на розмір ключа -- куди це годиться? Допустимо, я дозволяю своїм користувачам створювати облікові записи на будь-якій мові (UTF-8). У якості максимальної довгі логіна я вибираю 512 символів. Тому що логіни повинні бути унікальними, доходжу висновку, що потрібно накласти унікальний ключ на стовпець, і, як з'ясовується, не можу, тому що ключ не вписується в 1000 байт. Доводиться йти на поступки й робити унікальність тільки по перших 333 символах. Хто не вірить, може самостійно подивитися на результат create table t( t varchar(512), key(t)) character set = utf8.

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

Перевірка даних на етапі додавання

У стандарті SQL була передбачена інструкція CHECK, яка задає вираження, якому повинні задовольняти дані, що додаються в таблицю. У керівництві MySql про цю інструкцію сказане гранично просто «The CHECK clause is parsed but ignored by all storage engines.»

Транзакції й зовнішні ключі

За замовчуванням в MySql для таблиць використовується движок Myisam, який не підтримує ні транзакцій ні зовнішніх ключів. Це зложилося історично й у такого підходу є виправдання, якщо розглядати роботу із БД із крапки продуктивності. Можна просто помітити, що, якщо вам потрібні транзакції й зовнішні ключі, то використання storage engine Innodb обов'язково. Природно в PostgreSql транзакції й весняні ключі повністю функціональні.

Виводи

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

4. Опис функціональних можливостей та програмної реалізації проектованої системи

4.1 Функціональне призначення та технологічні особливості розробки

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

Основні можливості проектованої нами системи наступні:

· Система пропускає співробітників лише при введенні правильного ідентифікаційного номера й пароля.

· Автоматичний облік співробітників минулих через КПП.

· Надання списку спізнілих співробітників, або тих, хто пішов завчасно.

· Вилучений контроль ГІС при наявності прав адміністратора.

· Вилучений перегляд звітів.

2 Структура частини зі сторонни користувача:

Размещено на http://www.allbest.ru/

Рис. 4.1 Схема структури частини зі сторони користувача

Співробітник уводить унікальний ідентифікаційний номер і пароль.

По базі даних у таблиці списку співробітників іде пошук співробітника з уведеним номером.

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

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

Співробітники, що в'їжджають на підприємство в транспорті, на додаток до номера й паролю вводять ще й номер машини, або номер машини й дані про перевезений вантаж.

4.3 Установка локального серверу XAMPP

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

Ідемо на сайт XAMPP і завантажуємо останню версію для Windows на цій сторінці - http://www.apachefriends.org/en/xampp-windows.html. Запускаємо інсталятор. Вибираємо російську мову.

Рис. 4.2 Вибір мови

Бажане встановлювати сервер у каталог за замовчуванням, тобто в "C:\xampp", але можна вибрати й будь-який іншої, я використовую для цього "C:\server".

Рис. 4.3 Вибір шляху

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

Рис. 4.4 Вибір сервісів

Дочекалися кінця установки, тиснемо на кнопку "Finish". Тепер відкриваємо Провідник і йдемо в папку "C:\server", бачимо там файл xampp-control.exe, запускаємо його.

Рис. 4.5 Контрольна панель XAMPP

За допомогою кнопок Start запускаємо Http-Сервер Apache і СУБД MySql.

Рис. 4.6 Запуск сервісів

Сервер запущений. Створимо за адресою C:\server\htdocs\ необхідну нам папку, у якій буде втримуються проектована ГІС, наприклад “propusk”. Тепер ми можемо перевіряти наші результати через будь-який браузер, просто набравши в адресному рядку http://localhost/propusk/. За адресою http://localhost/PHPmyadmin/ перебуває панель управління базами даних MySql, у якій ми будемо створювати необхідну нам базу даних і таблиці в ній.

4.4 Опис інтерфейсу програми зі сторони користувача.

Рис. 4.7 Головна сторінка користувача

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

Рис. 4.8 Поля для введення при в'їзді на легковому автомобілі

Рис. 4.9 Поля для введення при в'їзді на вантажному автомобілі

Рис. 4.10 Спливаючі підказки

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

Рис. 4.11 Доступ отриманий

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

Рис. 4.12 Уводимо кількість різновидів товарів

Ввівши у поле «Количество товаров» значення чотири, у наступній сторінці згенеруються чотири поля, які співробітник повинен заповнити.

Рис. 4.13 Заповнення списку товарів

4.5 Опис інтерфейсу панелі адміністратора

Для того, щоб потрапити в адміністраторську панель, необхідно дописати в адресному рядку слово admin та нажати клавішу Enter.

Рис. 4.14 Перехід в адміністраторську частину

Після того, як ми перейшли по даній адресі (рис. 4.14), отримуємо вікно з полями введення імені та паролю адміністратора, і при правильнім введенні одержуємо доступ в панель управління адміністратора (рис. 4.16).

Рис. 4.15 Введення імені та паролю

Рис. 4.16 Панель управління адміністратора

Рис. 4.17 Додавання новини

Дана новина відображається на сторінці користувача.

Рис. 4.18 Видалення новин

Рис. 4.19 Список робітників

Праворуч кожного запису є дві кнопки, одна для редагування запису, інша для її видалення.

автоматизація пропуск web програма

Рис. 4.20 Редагування даних про працівника

Рис. 4.21 Додавання даних нового працівника

Рис. 4.22 Список товарів (додавання / видалення)

Рис. 4.23 Список мір товарів (додавання / видалення)

Рис. 4.24 Архів КПП

Тут відбувається вибір таблиці по якій буде відбуватися пошук. Усього існує 6 таблиць:

· Піші робітники (вхід)

· На машині без вантажу (вхід)

· На машині з вантажем (вхід)

· Піші робітники (вихід)

· На машині без вантажу (вихід)

· На машині з вантажем (вихід)

Так само можливе сортування за різними критеріями:

· Рік

· Місяць

· День

·

Рис. 4.25 Число рядків на сторінку, виведених у списку архіву КПП

Рис. 4.26 Список IP-Адресів, що мають доступ до адміністраторської панелі

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

Рис. 4.27 Редагування напису на «шапці» користувацької частини програми

Рис. 4.28 Редагування напису на нижній панелі інтерфейсу користувача

Рис. 4.29 Зміна логіна й пароля адміністратора

Рис. 4.30 Кінець сесії адміністратора

4.6 Програмна реалізація проектованої системи

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

Нижче наведений програмний код користувацької частини системи:

<?PHP

include ("blocks/header.PHP

?>

<table border="0" class="table">

<tr>

<td width="230" valign="top">

<?PHP

if ($id==1)

{

include ("blocks/left1.PHP

}

if ($id==2)

{

include ("blocks/left2.PHP

}

if ($id==3 or $id==false)

{

include ("blocks/left3.PHP

}

?>

</td>

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

<?PHP

include ("db.PHP");

$result = mysql_query("SELECT * FROM caps",$db);

if (!$result)

{

echo "<p class='admsmallcap'>Запрос на выборку из базы не прошел<br><strong>Код помилки:</strong></p>";

exit(mysql_error());

}

if (mysql_num_rows($result) == 0)

{

echo "<p class='admsmallcap'>Таблица с заголовками пуста</p>";

exit();

}

$myrow = mysql_fetch_array($result);

?>

<table width="1024" height="171" border="0" background="img/head.jpg">

<tr>

<td align="center" valign="middle"><?PHP echo "<div class='maincap'>".$myrow['main']."</div>";?><br> <?PHP echo "<div class='secondcap'>".$myrow['second']."</div>"; ?></td>

</tr>

</table>

Даний код утримується у файлі header.PHP, який імпортувався попереднім кодом при формуванні головної сторінки програми. Відбувається підключення до БД, і зі спеціальної таблиці виносяться написи на даній «шапці», а так само встановлюється розмір «шапки» і малюнок на задньому тлі.

<table width="230" border="0" align="left" background="img/img3.jpg" class="repeat" valign="bottom">

<tr>

<td height="50" width="186px" align="left"><div class='secondcap2'>Вход без машины:</div></td>

<td>&nbsp;</td>

</tr>

<tr>

<td >

<a href="?id=1" target="_self"><img src="img/6.png"/></a>

</td>

<td><img src="img/arrow.png"/></td>

</tr>

<tr>

<td >

<a href="?id=2" target="_self"><img class="margin" src="img/2.png" /></a>

</td>

<td>&nbsp;</td>

</tr>

<div class="borderright">

<tr>

<td>

<a href="?id=3" target="_self"><img src="img/1.png"/></a>

</td>

<td>&nbsp;</td></tr>

</table>

Даний код утримується у файлі left1.PHP, який імпортувався у файл index.PHP при формуванні головної сторінки програми. Цей файл імпортується якщо користувачем була натиснута кнопка «Піший співробітник», він міняє зображення кнопки, а так само через формується посилання, яке через адресний рядок передає значення про те, яка кнопка була натиснута. Це значення ухвалюється файлом index.PHP і формується центральна частина програми з полями для введення номера й пароля. Якщо був обраний перший варіант, то імпортується наступний файл:


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.