Інформатизація та перехід нашого суспільного життя в сферу інтернету вже багато років є перспективою швидкого розвивитку сфери IT-технологій. Інші області людської діяльності отримують потужний поштовх у своєму розвитку завдяки їй. Веб сайти збільшують продажі магазинів, а також зручність покупок.
Це призвело до того, що в даний час навіть невеликим магазинам необхідно мати свій власний сайт або їм загрожує велика втрата власного доходу. Основою структури сайту є HTML-код. Але так як масштаб і складність сайтів постійно ростуть, а також необхідні інструменти для динамічної зміни інформації на сайті, то крім HTML-коду використовують PHP. Невеликий код на PHP здатний допомогти буквально в найкоротші терміни вести зручне відстеження і динамічна зміна кількості і типу товарів в магазині. Створюються шаблонізатор, що дозволяють мінімізувати кількість створюваного коду, а також додати гнучкість розробки. Для управління сайтом створюються адміністративні панелі. У зв'язці з PHP використовують MySQL, який є зручним сховищем інформації. MySQL є безумовно величезним сховищем всього що взагалі є на сайті. Крім того, вся ця інформація може бути прихована і повністю закодована від зовнішнього, стороннього втручання. І ось уже володіючи такою базою за допомогою PHP вона збирається в повноцінний, зручний для динамічного зміни сайт.
Наведемо приклад.
До нашої студії надійшло замовлення на створення інтернет магазину ювелірних прикрас.
Постановка задачі
Завдання: розробити програмний засіб інтернет-вітрину, написавши власноручний шаблонізатор.
На сайті повинні бути присутніми наступні елементи:
• головне меню, обов'язкові пункти: головна сторінка, про автора, про фірму (з адресами, телефонами і схемою під'їзду до магазину);
• розбиття товару, що продається за групами - не менше 3-х груп, кожна група товарів повинна бути окремим пунктом головного меню;
• список товарів повинен включати - не менше 10 товарів. представити у вигляді таблиці: назва товару, основні характеристики товару (2-3шт), ціна;
• можливість перегляду інформації про кожну окрему товар (окрема сторінка: картинка і текст);
• адміністративна панель сайту (повинна бути захищена паролем): зробити можливим додавання товару, видалення, зміна опису і ціни товару. Можливість редагування html-коду сторінок: головна сторінка, про автора, про фірму;
• на сервері повинні бути відключені register_globals і "магічні лапки".
Сайт повинен бути побудований на шаблонах (тобто з використанням власноручно написаної шаблонізатора!).
Як користувачі, розглядаються потенційні покупці і адміністратор сайту.
1.2 Алгоритм ЗАВАНТАЖЕННЯ ЗОБРАЖЕННЯ НА СЕРВЕР
Користувач вибирає файл у себе на комп'ютері. Потім виконує запит на зміну або додавання. На сервері відбувається перевірка з'єднання з базою даних. Відбувається завантаження файлу користувача в потрібний каталог. Далі відбувається зміна інформації про шляхи файлу в базі даних. Відправляється результат запиту користувача. Якщо картинка не знайдена, то ставиться якесь інше зображення, що сигналізує що картинка не знайдено.
1.3 алгоритм РОБОТИ МОДУЛЯ АДМІНІСТРАТИВНОЇ панелі
Відбувається перевірка з'єднання з базою даних. Перевіряється чи був виконаний користувачем запит на редагування інформації (зміна, видалення, додавання). Якщо був, то формується необхідна рядок запиту і потім відбувається виконання запиту. Формується і вибраному місці сторінка адміністративної панелі.
2. ПРОГРАМНЕ КОНСТРУЮВАННЯ
2.1 ОБГРУНТУВАННЯ ВИБОРУ ЗАСОБІВ РОЗРОБКИ
2.1.1 APATCHEHTTP-СЕРВЕР
ApacheHTTP-сервер - вільний веб-сервер.
Apache є кросплатформним ПО, підтримує операційні системи Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.
Основними достоїнствами Apache вважаються надійність і гнучкість конфігурації. Він дозволяє підключати зовнішні модулі для надання даних, використовувати СУБД для аутентифікації користувачів, модифікувати повідомлення про помилки і т. Д. Підтримує IPv6.
Apache має вбудований механізм віртуальних хостів. Він дозволяє повноцінно обслуговувати на одному IP-адресу безліч сайтів (доменних імен), відображаючи для кожного з них власне вміст.
2.1.2 PHP
PHP - скриптова мова загального призначення, інтенсивно застосовується для розробки веб-додатків. В даний час підтримується переважною більшістю хостинг-провайдерів і є одним з лідерів серед мов, що застосовуються для створення динамічних веб-сайтів.
Мова і його інтерпретатор розробляються групою ентузіастів в рамках проекту з відкритим кодом. Проект поширюється під власною ліцензією, несумісною з GNU GPL.
Популярність в області побудови веб-сайтів визначається наявністю великого набору вбудованих засобів для розробки веб-додатків.
Основні з них:
• автоматичне вилучення POST і GET-параметрів, а також змінних оточення веб-сервера в зумовлені масиви;
• взаємодія з великою кількістю різних систем управління базами даних (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape і Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB ++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Інтерфейс PDO);
• автоматизоване відправлення HTTP-заголовків;
• робота з HTTP-авторизацією;
• робота з cookies і сесіями;
• робота з локальними і віддаленими файлами, сокетами;
• обробка файлів, що завантажуються на сервер;
• робота з XForms.
2.1.3 NOTEPAD ++
Notepad ++ - багатоплатформовий текстовий редактор.
Розробник дозволяє безкоштовно і без обмежень ознайомитися з продуктом, проте програма повідомляє про необхідність придбання ліцензії.
Notepad ++ підтримує велику кількість мов програмування і має можливість підсвічування синтаксису для C, C ++, C #, CSS, D, Dylan, Erlang, HTML, Groovy, Haskell, Java, JavaScript, LaTeX, Lisp, Lua, Markdown, MATLAB, OCaml, Perl, PHP, Python, R, Ruby, SQL, TCL і XML.
На додаток до тих мов програмування, які включені за замовчуванням, користувачі мають можливість завантажувати плагіни для підтримки інших мов.
Notepad ++ може бути оснащений менеджером пакетів, який дозволяє користувачеві знаходити, встановлювати, оновлювати і видаляти пакети без перезавантаження програми. Менеджер підтримує встановлені пакети в актуальному стані, завантажуючи нові версії з репозиторіїв. Крім того, він надає команди для активації і деактивації встановлених пакетів.
2.1.4 MYSQL
MySQL - вільна реляційна система управління базами даних. Розробка та підтримка сайта MySQL здійснює корпорація Oracle, яка отримала права на торговельну марку разом з поглиненої Sun Microsystems, яка раніше придбала шведську компанію MySQL AB. Продукт поширюється як під GNU General Public License, так і під власною комерційною ліцензією. Крім цього, розробники створюють функціональність за замовленням ліцензійних користувачів. Саме завдяки такому замовленню майже в найраніших версіях з'явився механізм реплікації.
MySQL є рішенням для малих і середніх додатків. Входить до складу серверів WAMP, AppServ, LAMP і в портативні збірки серверів Денвер, XAMPP, VertrigoServ. Зазвичай MySQL використовується як сервер, до якого звертаються локальні або видалені клієнти, проте в дистрибутив входить бібліотека внутрішнього сервера, що дозволяє включати MySQL в автономні програми.
Гнучкість СУБД MySQL забезпечується підтримкою великої кількості типів таблиць: користувачі можуть вибрати як таблиці типу MyISAM, що підтримують повнотекстовий пошук, так і таблиці InnoDB, що підтримують транзакції на рівні окремих записів. Більш того, СУБД MySQL поставляється із спеціальним типом таблиць EXAMPLE, що демонструє принципи створення нових типів таблиць.
Завдяки відкритій архітектурі і GPL-ліцензуванню, в СУБД MySQL постійно з'являються нові типи таблиць.
26 лютого 2008 року Sun Microsystems придбала MySQL AB за 1 млрд доларів, 27 січня 2010 року Oracle придбала Sun Microsystems за 7,4 млрд доларів і включила MySQL в свою лінійку СУБД.
Спільнотою розробників MySQL створені різні відгалуження коду, такі як Drizzle, OurDelta, Percona Server і MariaDB. Всі ці відгалуження вже існували на момент поглинання компанії Sun корпорацією Oracle.
2.2 ОСНОВНІ МОДУЛІ ПРОГРАМНОГО ЗАСОБУ
В ході написання курсової роботи було реалізовано 2 модуля: один для шаблонізатора сайту, другий - авторизації сайту. Обидва модулі включають в себе роботу з базою даних.
2.2.1 Модуль шаблонізатор
Головним завданням даного модуля є генерація HTML-коду на основі шаблонів, що зберігаються в базі даних, за запитом користувача.
2.2.2 Модуль АВТОРИЗАЦІЇ В АДМІНІСТРАТИВНОЇ панелі САЙТУ
Модуль виробляє зчитування логіна і пароля для подальшої роботи з ними в шаблонізатор. Методи відсутні.
ВИСНОВОК
Ітак ми пройшли крок за кроком і навели приклад як нами був розроблений і реалізований сайт для інтернет магазину ювелірних прикрас, що включає шаблонізатор сайту та адміністративну панель.
Сайт дозволяє редагувати всю що зберігається інформацію (видаляти, змінювати, додавати) завдяки адміністративній панелі.
Створення php шаблонізатора дозволило генерувати необхідний HTML-код замість ручного створення безлічі сторінок з повторенням коду.
Шаблонизатор дозволив створити динамічну структуру сайту.
Зберігання даних в базі даних MySQL забезпечило надійність інформації та зручність роботи з нею.
Далі буде...