Розробка системи управління контентом веб-сайту ПП «Агромат»
Ще декілька років тому Internet використовували в основному тільки для обміну почтовими повідомленнями та пересилки файлів. Та в останній час сучасні технології перетворили Internet в розвинену інфраструктуру, що охоплює головні інформаційні центри, світові бібліотеки, бази даних наукової та правової інформації, багато державних та комерційних організацій і підприємств, біржі та банки. Сьогодні… Читати ще >
Розробка системи управління контентом веб-сайту ПП «Агромат» (реферат, курсова, диплом, контрольна)
Вступ
Ще декілька років тому Internet використовували в основному тільки для обміну почтовими повідомленнями та пересилки файлів. Та в останній час сучасні технології перетворили Internet в розвинену інфраструктуру, що охоплює головні інформаційні центри, світові бібліотеки, бази даних наукової та правової інформації, багато державних та комерційних організацій і підприємств, біржі та банки. Сьогодні Internet можна розглядати як величезний ринок, який може охопити в потенціалі все населення Землі. Саме тому виробники програмних та апаратних рішень, торгові та фінансові організації активно розробляють різноманітні види та методи ведення будь-якої діяльності в всесвітньовідомій мережі Internet.
В наш час для повного комунікаційного життя підприємства, установи чи організації використовують різні методи, але головним інформаційним та рекламним методом є засоби глобальної мережі Internet. Веб-сайт є обличчям підприємства, а його багатозадачність і зручність говорить про професіоналізм створювача.
Метою даного дипломного проекту є розробка веб-сайту для ПП «Агромат».
Необхідно створити такий сайт, який би із задоволенням і зручністю використовували користувачі. А саме потрібно реалізувати такі задачі: розробити доступний та зручний інтерфейс, як для відвідувача сайту, так і для адміністратора; створити базу даних, в якій розміщувалася необхідна інформація; забезпечити захист цієї інформації від зовнішнього втручання; реалізувати зворотній зв’язок з відвідувачами сайту тощо.
1. Технічне завдання
Розробити портальну систему, яка буде забезпечувати функціонування веб-сайту ПП «Агромат»:
1. Спроектувати структуру портальної системи та форму збереження даних.
2. Реалізувати ядро портальної системи.
3. Написати програмні модулі для:
3.1. зберігання інформації на сайті у вигляді розділів та сторінок.
3.2. реалізації стрічки новин на сайті;
3.3. підрахунку кількості відвідувачів сайту;
3.4. проведення голосувань на сайті;
3.5. реалізації можливості пошуку інформації на сайті;
3.6. управління структурою головного меню.
4. Реалізувати систему адміністрування веб-сайту:
4.1. написати програмні модулі для забезпечення обмеженого доступу до системи адміністрування.
4.2. передбачити можливість існування адміністраторів двох типів: головні адміністратори сайту та адміністратори розділу.
4.3. створити скрипти для додавання, оновлення та видалення даних для кожного модуля сайту.
4.4. організувати зручний та функціональний інтерфейс системи адміністрування.
5. Розробити інтерфейс веб-сайту та здійснити наповнення його контентом.
2. Вибір архітектури та інструментальних засобів розробки
Для реалізації даного проекту було використано клієнт-серверну архітектуру.
Клієнт-серверна технологія при порівнянні з іншими технологіями, які б можливо було б використати при розробці проекту, має такі переваги: можливість динамічної модифікації скриптів, тобто скрипти змінюються лише на сервері і відповідно всі клієнти користуються новою версією скриптів (при звичайній побудові програм модифікація програми на кожному клієнті вимагає певних грошових та часових витрат); можливість уніфікації інтерфейсу; масштабованість: можливість нанизування нових компонентів (модифікація серверної частини) і додавання нових клієнтів; це дозволяє легко розширити систему від простої програми на декількох користувачів до великої системи на декілька сотень клієнтів; можливість персоналізації тощо.
Розроблювачам Web-додатків немає необхідності говорити, що web-сторінки — це не тільки текст і картинки. Гідний уваги сайт повинен підтримувати деякий рівень інтерактивності з користувачем. Раніше все це реалізувалося CGI-скриптами. Але CGI-скрипти дуже погано масштабуються. Кожний новий виклик CGI вимагає від ядра породження нового процесу, а це забирає процесорний час і витрачає оперативну пам’ять. PHP надає інший варіант — він працює як частина Web-сервера, і цим самої схожий на ASP від Microsoft.
3. Вимоги до технічних засобів
Програма потребує наявності сервера та комп’ютера користувача, але при необхідності, комп’ютер користувача може виконувати роль сервера.
Програма може бути встановлена у будь-якій з розповсюджених на сьогоднішній день операційних систем — Windows 9x/NT/XP/2003/Vista, Linux, Unix, та ін. Мінімальні вимоги до системи такі:
1. Процесор — 300 Мгц 2. Оперативна пам’ять — 32 Мб 3. Відеокарта та монітор — 640×480, 256 кольорів при частоті розгортки 75 Гц (TCO'95) 4. Клавіатура — довільна 5. Миша — довільна 6. Вільний дисковий простір — 50 Мб (для встановлення серверів Apache та MySQL). | |
Наведена конфігурація не перевищує рівень оснащення комп’ютерів користувачів на даний момент часу, тому програма буде доступною широкому колу користувачів.
4. Керівництво системному адміністратору
В якості веб-сервера представленої розробки використано пакет «Денвер».
Джентльменський набір Web-розробника («Д.н.w.р», «Денвер») — проект Дмитра Котерова, набір дистрибутивів (Apache, PHP, MySQL, Perl і т. п.) і програмна оболонка, які використовуються Web-розробниками для розробки сайтів на «домашній» (локальній) Windows-машині без необхідності виходу в Інтернет. Головна особливість Денвера — зручність при віддаленій роботі одразу над кількома незалежними проектами і можливість розміщення на Flash-накопичувачі.
Базовий пакет Денвера містить більшість необхідних програм та утиліт:
· Інсталятор (підтримує також інсталяцію на flash-накопичувач).
· Apache, SSL, SSI, mod_rewrite, mod_php.
· PHP5 з підтримкою GD, MySQL.
· MySQL5.
· Система управління віртуальними хостами
· Система управління запуском и завершенням усіх компонентів Денвера.
· phpMyAdmin — система управління MySQL через Web-інтерфейс.
· Емулятор sendmail і SMTP-сервера
Встановлення дистрибутива
Після запуску скачаного інсталятора Денвера на екрані з’явиться таке вікно:
Далі буде запропоновано вибрати, у який каталог необхідно встановити комплекс (по замовчуванню використовується каталог C: WebServers, потрібно лише натиснути на клавішу Enter, щоб погодитися з цим вибором). У вказаному каталозі будуть розташовані абсолютно всі компоненти системи, і зовні його ніякі файли в подальшому не створюються.
Рекомендується встановлювати комплекс у каталог першого рівня — тобто, C: WebServers, а не, наприклад, C: MyWebServers. Річ у тому, що інсталятори пакетів розширень шукають базовий комплект саме на першому рівні по усім дискам. І, якщо не знаходить, пропонує користувачу ввести ім'я директорії вручну.
Далі запропонує ввести ім'я віртуального диску, який буде пов’язаний з тільки що створеною директорією. Рекомендуємо погодитися зі значенням по замовчуванню (Z:). Важливо, що диску з цим іменем ще не повинно існувати у системі - частіше всього так і є з диском Z:.
Після цього почнеться копіювання файлів дистрибутиву, а під кінець користувачу буде задано питання, як саме потрібно запускати і зупиняти комплекс. Є дві альтернативи:
· Створювати віртуальний диск при завантаженні машини (інсталятор зробить це автоматично), а при зупинці серверів його (диск) не відключати. Це найбільш зручний режим, і при виконанні даного дипломного проекту було використано саме цей режим.
· Створювати віртуальний диск тільки за явною командою старту комплексу (при натисканні по ярлику запуску на Робочому столі). І, відповідно, відключати диск від системи при зупинці серверів.
В деяких версіях Windows 98 присутня помилка, в результаті якої диск з першого разу не відключається.
Перший запуск Денвера
Встановлення сервера завершено. Для його запуску потрібно натиснути на створеному ярлику Start Denwer на Робочому столі, а потім, дочекавшись, коли всі консольні вікна зникнуть, відкрити браузер і набрати у ньому адресу: http://localhost/denwer/. Виходити з Інтернету при цьому не обов’язково.
Деякі ОС при першому запуску Internet Explorer-а викликають Мастер підключення. Якщо це відбулося на локальній машині, необхідно відмовитися від настройки параметрів, закривши майстер.
Якщо тестова сторінка все ж не завантажилася, потрібно перевірити:
· Чи відключений на машині проксі-сервер у настройках браузера?
· Чи запущено Денвер? Якщо так, чи немає помилок при натисканні на значок пера (справа внизу)?
· Чи не запущено який-небудь інший Web-сервер, який заважає Денверу (часто буває в Windows XP)? Наприклад, Microsoft IIS? Якщо так, потрібно його вимкнути.
Робота з віртуальними хостами
Перед тим, як продовжити, потрібно переконатися, що у системі запущена служба «DNS-клієнт». Це можна зробити, відкривши «Панель управления — Администрирование — Службы». В іншому випадку віртуальні хости не будуть працювати.
Денвер дозволяє обслуговувати одним сервером одразу декілька хостів. Іншими словами, ввівши у браузері шлях http://localhost, буде відкрито один хост, а, надрукувавши http://test1.ru, — на інший (але теж на локальній машині).
Додати новий віртуальний хост у Денвері надзвичайно просто. Нехай це буде test1.ua. Тоді необхідно виконати наступні дії:
Створити у папці /home директорію з іменем, яке співпадає з іменем віртуального хоста (у нашому випадку «test1.ua»). Ця директорія буде збурігати директорії документів доменів третього рівня для test1.ua. Наприклад, ім'я abc. test1.ua зв’язується сервером з директорією /home/test1.ua/abc/, а ім'я abc.def.test1.ua — с /home/test1.ua/abc.def/. Ну і, звичайно, піддиректорія www відповідає адресам www. test1.ua і просто test1.ua. На рис. показано, як може виглядати директорія /home. Не потрібно забувати створити папку www у директорії віртуального хоста, оскільки саме у ній будуть зберігатися його сторінки та скрипти!
Перезапустити сервер, скориставшись, наприклад, ярликом Restart Denwer на Робочому столі.
Це все, що потрібно зробити. При цьому, як можна було помітити, модифікація файлів httpd. conf і файла hosts не потрібна. Файл httpd. conf зовсім ніколи не потрібно змінювати. Трохи складніше з файлом hosts: він модифікується автоматично, підлаштовуючись під поточну конфігурацію каталогів у /home. При цьому використовується досить інтелектуальний алгоритм для розпізнавання, які хости були внесені Денвером, а які користувач додав самостійно, вручну (якщо він, звичайно, захоче це зробити). Тобто, автоматична зміна файла hosts ще не означає, що у ньому пропадуть усі коментарі і адміністратор не зможе більше ніколи редагувати його «руками». І, звичайно, при зупинці комплексу за допомогою ярлика Stop Denwer файл hosts відновлюється у той стан, у якому він і повинен бути.
5. Керівництво користувачу
5.1 Система адміністрування
Для доступу до системи адміністрування кожному адміністратору надається окремий логін та пароль. Логін і пароль являють собою послідовність латинських літер та арабських цифр. Вони є секретними, тому необхідно слідкувати за тим, щоб вони не стали відомими стороннім особам. Якщо є підозра, що логін або пароль стали відомими сторонній особі, потрібно негайно звернутися до головного адміністратора сайту для того, щоб їх змінити.
Слід уважно слідкувати за діями при видаленні інформації з сайту, оскільки будь-яку видалену інформацію буде неможливо ніяким чином відновити!
5.1.1 Вхід у систему адміністрування
1. Відкрити веб-браузер (двічі клацнути по значку «Internet Explorer»).
2. У рядку адреси ввести адресу веб-сайту. В кінці адреси дописати рядок /admin і натиснути на клавішу «Enter».
3. Ввести логін та пароль адміністратора.
4. Натиснути на кнопку «Увійти».
5. Якщо логін та пароль було введено правильно — сторінка матиме такий вигляд:
У разі виникнення помилки при аутентифікації, на екрані з’явиться повідомлення про причину помилки:
5.1.2 Вихід з системи адміністрування
Для завершення роботи з системою адміністрування потрібно натиснути на пункт «Вихід» у горизонтальній панелі навігації.
Після цього на екрані з’явиться форма, у якій буде запропоновано ввести логін та пароль. Це означає, що можна закривати вікно за допомогою «хрестика».
Якщо не скористатися командою «Вихід», а просто закрити вікно, то будь-яка особа, яка буде працювати на цьому комп’ютері зможе увійти у систему адміністрування без введення логіна та пароля.
5.1.3 Візуальний редактор SPAW 2.0
Для роботи з текстовою та графічною інформацією на сайті використовується візуальний редактор HTML-коду SPAW 2.0. Він дозволяє здійснювати форматування, редагування тексту, вставку графічних зображень на сторінку тощо. Він дозволяє також копіювати текст з текстового процесора MS Word і вставляти у форму редактора SPAW, але кожне зображення, яке має бути розміщене на сторінці, потрібно вставляти окремо.
Даний редактор має таку особливість. Для того, щоб здійснити перехід на наступний рядок необхідно використовувати комбінацію клавіш Shift-Enter. Для виконання даної операції можна використовувати і клавішу «Enter», але у такому випадку буде додано порожній рядок (буде здійснено перехід на наступний рядок з інтервалом).
Опис панелі інструментів SPAW-редактора
«Вирізати». Текст, який виділено, видаляється зі сторінки і копіюється у буфер обміну. | ||
«Копіювати». Текст, який виділено, копіюється у буфер обміну. | ||
«Вставити». Текст, який знаходиться у буфері обміну, вставляється у поточну позицію курсору. | ||
«Відмінити». Відмінити останню дію. | ||
«Повторити». Виконати дію, яку було відмінено. | ||
«Жирний». Встановити жирний стиль тексту. | ||
«Курсив». Встановити курсивний стиль тексту. | ||
«Підкреслений». Встановити підкреслення тексту. | ||
«Перекреслений». Текст, який виділено, буде перекреслено. | ||
Вирівняти текст по лівій стороні. | ||
Вирівняти текст по центру. | ||
Вирівняти текст по правій стороні. | ||
Вирівняти текст по ширині (по лівій і правій стороні одночасно). | ||
«Збільшити відступ». Збільшує відстань між лівою стороною сторінки і текстом. | ||
«Зменшити відступ». Зменшує відстань між лівою стороною сторінки і текстом. | ||
Встановлення кольору тексту. | ||
Встановити колір фону тексту. | ||
«Верхній індекс». | ||
«Нижній індекс» | ||
«Чистка HTML». Дану операцію необхідно виконувати кожного разу, після копіювання тексту з текстового процесору MS Word у систему адміністрування. | ||
«Увімкнути/вимкнути рамки». Увімкнути/вимкнути режим відображення рамок таблиць. | ||
Автонумерація 1, 2, 3, … | ||
Маркований список. | ||
Додати гіперпосилання. На екрані з’явиться діалогове вікно, у якому можна вписати адресу посилання або вибрати файл, який було раніше закачано на сервер. | ||
Видалити гіперпосилання. | ||
Додати графічне зображення на сторінку. | ||
Встановити параметри зображення (назва, розміри зображення, вирівнювання на сторінці, товщина рамки навколо зображення). | ||
Вставити Flash-анімацію. | ||
Додати горизонтальну лінію. | ||
Додати таблицю. При натисканні на дану кнопку на екрані з’явиться діалогове вікно, у якому потрібно ввести такі параметри: кількість рядків та кількість стовпців таблиці, товщину ліній у пікселях, колір тла тощо. | ||
Змінити параметри таблиці. | ||
Змінити параметри комірки таблиці (горизонтальне та вертикальне вирівнювання тексту у комірці, колір тла, розміри комірки). | ||
Видалити рядок таблиці. | ||
Видалити стовпчик сторінки. | ||
Додати порожній рядок таблиці. | ||
Додати стовпець таблиці. | ||
Об'єднати поточну комірку з коміркою, яка знаходиться справа від неї. | ||
Об'єднати поточну комірку з коміркою, яка знаходиться знизу від неї. | ||
Розділити комірку на дві по горизонталі. | ||
Розділити комірки на дві по вертикалі. | ||
Перейти до режиму візуального редагування HTML-коду. Особливість даного режиму — як текст виглядає у формі редагування, так він і буде виглядати на сторінці сайту. | ||
Перейти на режим ручного редагування HTML-коду (використовується для експортування коду HTML-сторінок, які генеруються зовнішніми HTML-редакторами). | ||
Копіювання тексту з текстового редактора у систему адміністрування
Копіювання тексту здійснюється за допомогою буферу обміну. Текстовий документ потрібно відкрити у текстовому редакторі, скопіювати у буфер обміну і вставити у відповідну форму у системі адміністрування. Отже, проілюструємо даний алгоритм на прикладі текстового редактора MS Word.
1. Відкрити MS Word, завантажити текстовий файл, виділити текст.
2. Скопіювати виділений текст у буфер обміну (права клавіша миші, «Копировать»)
3. Увійти у систему адміністрування, перейти у потрібний розділ.
4. Вставити текст з буферу обміну у форму SPAW-редактора (права клавіша миші у порожній формі редактора SPAW, «Вставить».
5. Здійснити очищення вставленого тексту від надлишкового форматування MS Word. Для цього необхідно натиснути на кнопку «Чистка HTML».
6. Перевірити правильність форматування тексту і у разі необхідності відформатувати текст, використовуючи відповідні кнопки панелі інструментів.
5.1.4 Адміністрування розділу «Новини»
Додавання новини на сайт
1. У верхній панелі навігації вибрати розділ «Новини», «Додати новину».
2. Відкоригувати дату та час розміщення новини. Дата та час мають бути представлені у такій формі: 2007;09−12 13:58:13. Спочатку записується рік (дотримувати чотиризначної форми представлення року обов’язково), потім місяць (необхідно вказати двозначне число, наприклад для січня — 01, для вересня — 09) та день місяця (аналогічно — як для місяця — якщо число одноцифрове, слід спочатку дописати нуль). Дата та час розділяються одним пробілом.
3. Ввести заголовок новини, короткий текст та текст новини.
Заголовок новини передбачає лише одне речення з кількох слів (назву події, яка відбулася). На сайті він відображається при перегляді новини у вигляді заголовку вікна з текстом новини.
Редагування новини
1. У верхній панелі навігації вибрати розділ «Новини», «Список новин».
2. Вибрати рік та місяць події і натиснути на кнопку «Вибрати».
3. На сторінці з’явиться перелік новин, відсортованих за датою та часом. Натиснути на посилання «Редагувати».
4. Внести корективи і натиснути на кнопку «Зберегти зміни».
Видалення новини
1. У верхній панелі навігації вибрати розділ «Новини», «Список новин».
2. Вибрати рік та місяць події і натиснути на кнопку «Вибрати».
3. На сторінці з’явиться перелік новин, відсортованих за датою та часом. Вибрати потрібну новину і натиснути на посилання «Видалити».
4. Підтвердити видалення.
5.1.5 Адміністрування розділу «Сторінки»
Всі сторінки даного розділу зберігаються у вигляді ієрархічної структури розділів сайту. Розділи даного модулю введено лише для систематизації та каталогізації сторінок сайту, тобто для зручності адміністрування. Будь-які зміни у даному розділі не будуть викликати зміну головного меню сайту. Тобто, якщо додати новий розділ або змінити назву існуючого розділу, структура головного меню сайту не зміниться.
У випадках, якщо необхідно вносити зміни у головне меню, необхідно використовувати алгоритми, які описані у розділі «Адміністратору модуля «Меню».
Додавання нового розділу
1. У головній панелі навігації вибрати пункт «Сторінки», «Додати розділ».
2. Вибрати розділ, у який буде здійснюватися додавання підрозділу.
3. Ввести назву нового підрозділу.
4. Натиснути на кнопку «Додати».
Редагування назви розділу
1. У головній панелі навігації вибрати пункт «Сторінки», «Перелік розділів».
2. На сторінці з’явиться перелік розділів сайту. Вибрати необхідний розділ шляхом натискання на посиланні «редагувати».
3. Внести зміни у назву і натиснути на кнопку «Зберегти зміни».
Зміну розділу, до якого належить підрозділ, треба здійснювати уважно. Якщо вибрати розділ, який знаходиться нижче за ієрархією в одній і тій самій гілці, що і розділ, назва якого редагується, то вся гілка стане невидимою. Це призведе до видалення усіх сторінок цієї гілки.
Видалення розділу
1. У головній панелі навігації вибрати пункт «Сторінки», «Перелік розділів».
2. На сторінці з’явиться перелік розділів сайту. Вибрати розділ, який потрібно видалити шляхом натискання на посиланні «видалити».
3. Підтвердити видалення розділу у діалоговому вікні, яке з’явиться на екрані.
Увага… При видаленні розділу автоматично видаляються усі підрозділи і сторінки, які до нього належать, тому дану операцію потрібно використовувати лише у випадку крайньої потреби.
Додавання нової сторінки
1. У панелі навігації вибрати розділ «Сторінки», потім «Додати сторінку».
2. Вибрати розділ, у який буде додано сторінку.
3. Ввести назву сторінки.
4. Ввести текст сторінки.
5. Натиснути на кнопку «Додати сторінку».
Редагування сторінки
1. У панелі навігації вибрати розділ «Сторінки», потім «Список сторінок».
2. У випадаючому списку вибрати розділ, до якого належить сторінка, яку потрібно відредагувати.
3. Вибрати сторінку шляхом натискання на посиланні «редагувати».
4. Внести зміни і натиснути на кнопку «Зберегти зміни».
Видалення сторінки
1. У панелі навігації вибрати розділ «Сторінки», потім «Список сторінок».
2. У випадаючому списку вибрати розділ, до якого належить сторінка, яку потрібно відредагувати.
3. Вибрати сторінку і натиснути на посилання «Видалити».
4. У діалоговому вікні підтвердити видалення сторінки.
Завантаження файлів на сервер
1. Вибрати пункт «Сторінки», потім «Закачування файлів».
2. Якщо необхідно, то створити новий каталог, куди будуть закачуватися файли.
Для цього необхідно у випадаючому списку вибрати «Directory» і у рядку введення, який розташовується справа від нього ввести назву каталогу (виключно латинськими літерами).
Натиснути на кнопку «Створити».
Знайти у списку файлів директорію, яку було створено і натиснути на ній лівою клавішею миші.
З’явиться перелік файлів, які містяться у вибраній директорії. Оскільки директорію було створено нещодавно, то вона не містить файлів.
Для того, щоб помістити файли у директорію необхідно вибрати команду «Закачати на сервер».
На екрані з’явиться сторінка, яка містить елементи управління, за допомогою яких можна вибрати файли для завантаження на сервер. Необхідно натиснути на кнопку «Обзор» і вибрати файл, який було підготовлено для завантаження на сайт. Для початку закачування файлів на сайт необхідно натиснути на кнопку «Завантажити».
Ознакою того, що процес завантаження файлів на сервер завершено є перехід на сторінку зі списком усіх файлів, які містяться у створеній директорії.
Для того, щоб скопіювати у буфер обміну посилання на закачаний файл необхідно натиснути правою клавішею миші на значку і у меню, яке з’явиться на екрані вибрати пункт «Копировать ярлык».
Тепер посилання, яке скопійоване у буфер обміну можна використовувати для створення гіперпосилання на закачаний файл.
Для цього потрібно:
1. Перейти у режим редагування сторінки, на якій потрібно розмістити гіперпосилання (розділ «Редагування сторінки»).
2. Виділити фрагмент тексту, який буде використовуватися в якості посилання.
3. Натиснути на кнопку «Лінк».
3. У діалоговому вікні в поле «Адреса» вставити посилання з буферу обміну
4. Якщо необхідно, щоб відкривалося нове вікно при переході за посиланням, то у випадаючому списку потрібно вибрати пункт «в новому вікні (_blank)».
5. Натиснути на кнопку «Готово».
5.1.6 Адміністрування розділу «Інтернет-опитування»
Інтернет-опитування розміщується на сайті у нижній лівій частині сторінки. Кожний відвідувач сайту має змогу голосувати один раз на добу. Повторні голоси користувачів протягом доби не враховуються. Якщо на сайті проводяться одразу кілька голосувань, то відвідувач має змогу брати участь у кожному з них, але голосувати лише один у кожному з них.
Додавання нового опитування
1. У панелі навігації вибрати «Інтернет-опитування», «Додати голосування».
2. Сформулювати і ввести текст запитання.
3. Ввести варіанти відповідей. Мінімально можлива кількість варіантів відповідей — 2, а максимально можлива — 10. Поля відповідей слід заповнювати послідовно.
4. Вибрати одну з трьох опцій:
a. Дозволити голосування — одразу після створення голосування воно стане активним.
b. Заборонити голосування, але відображати результати — відвідувачі не будуть мати можливість голосування, але зможуть переглядати результати.
c. Не відображати голосування — відвідувачі сайту не будуть бачити поточне голосування.
5. Натиснути на кнопку «Додати голосування».
Редагування тексту та варіантів відповідей
1. У панелі навігації вибрати «Інтернет-опитування», «Список голосувань».
2. Знайти відповідне голосування і натиснути на посилання «редагувати».
3. На екрані з’явиться інформація, яка була введена при створенні голосування. Тепер можна вносити зміни. Справа від варіантів відповідей знаходяться поля, у яких вказана кількість голосів за той або інший варіант.
4. Якщо необхідні зміни внесено, натиснути кнопку «Зберегти зміни».
Видалення опитування
1. У панелі навігації вибрати «Інтернет-опитування», «Список голосувань».
2. Знайти відповідне голосування і натиснути на посилання «Видалити».
3. Підтвердити видалення (голосування видаляється разом з результатами).
Вибір активного голосування
Адміністратор сайту може вибирати голосування, яке буде відображатися на всіх сторінках сайту у нижній правій частині сторінки.
1. У панелі навігації вибрати «Інтернет-опитування», «Активне голосування».
2. Вибрати голосування з випадаючого списку і натиснути на кнопку «Вибрати».
5.1.7 Управління обліковими записами адміністраторів
Додавання нового облікового запису
1. У панелі навігації вибрати «Нормативна база», «Додати обліковий запис адміністратора».
2. На екрані з’явиться форма для введення параметрів облікового запису.
Логін має складатися виключно з латинських літер (не можна використовуватися російські та українські літери, але дозволено використовувати цифри). Пароль для користувачів генерується автоматично, але у разі необхідності можна задати власний пароль (для нього вимоги такі ж, як і для логіну). Якщо адміністратор має електронну пошту, то її необхідно вказати у полі «E-mail».
3. На сайті передбачено два рівня доступу:
· головний адміністратор;
· адміністратор розділу;
Головний адміністратор має доступ до редагування даних у всіх розділах сайту. Адміністратор розділу має доступ тільки до окремих модулів сайту.
При створенні облікового запису головного адміністратора потрібно вибрати пункт «Головний адміністратор»:
При створенні облікового запису адміністратора розділу необхідно вибрати пункт «Адміністратор розділу» і вибрати розділи, до яких потрібно надати доступ:
Редагування та видалення облікових записів
1. У панелі навігації вибрати «Адміністратори», «Список облікових записів адміністраторів».
2. З’явиться список адміністраторів. Якщо потрібно видалити обліковий запис, то необхідно натиснути на посилання «видалити», яке знаходиться біля відповідного облікового запису. У випадку видалення усіх облікових записів головних адміністраторів доступ до системи адміністрування буде неможливим.
Якщо необхідно відкоригувати параметри облікового запису, змінити пароль або змінити права доступу, то треба натиснути на посилання «редагувати». Після внесення змін треба натиснути на кнопку «Зберегти зміни».
5.1.8 Адміністрування розділу «Прогноз погоди»
Погодний інформер — це невеликий графічний файл (малюнок) розміром від 2 до 5 кілобайт, на якому автоматично відображається прогноз погоди на сьогодні/завтра.
Зміна погодного інформера
Для того, щоб змінити зображення погодного інформера потрібно зайти на сайт метеорологічних прогнозів, перейти у розділ «Погодний інформер» (на різних сайтах даний розділ може мати різні назви) та отримати код погодного інформера.
Після цього потрібно зайти у систему адміністрування, у панелі навігації вибрати «Прогноз погоди».
На екрані з’являться форми, у які необхідно вставити отриманий код погодного інформера.
Для збереження внесених змін потрібно натиснути на кнопку «Зберегти зміни».
5.1.9 Зміна структури головного меню сайту
Додавання нового пункту меню
1. У панелі навігації вибрати модуль «Меню», «Редагувати меню».
2. На екрані з’явиться перелік усіх пунктів головного меню сайту.
3. Потрібно знайти місце у меню, куди потрібно додати пункт і натиснути на відповідне посилання «додати новий пункт».
4. На екрані з’явиться форма, у яку необхідно ввести назву пункту меню українською та англійською мовами. Якщо пункт меню має посилатися на сторінку сайту, то необхідно вдрукувати номер цієї сторінки у поле «Сторінка». Номер можна визначити, перейшовши у модуль сайту «Сторінки», потім «Список сторінок» та вибравши назву розділу, у якому знаходиться сторінка.
При необхідності, можна вказати посилання на зовнішній інтернет-ресурс. Для цього потрібно ввести адресу інтернет-ресурсу у поле «Посилання».
Якщо необхідно, щоб пункт меню посилався на сторінку, на якій буде відображатися каталог сторінок, які належать до певного розділу сайту, потрібно вибрати назву відповідного розділу з випадаючого меню.
Для підтвердження операції додавання пункту меню потрібно натиснути на кнопку «Додати».
Тепер за допомогою кнопокпотрібно виставити рівень вкладеності пункту меню.
Зміна рівня вкладеності пункту меню
Меню представляє собою ієрархічну структуру даних. Кожний пункт меню знаходиться на одному з трьох рівнів. При перегляді меню у системі адміністрування, для того, щоб візуально відрізняти рівні, перед пунктами другого рівня відображається один знак «-», а третього рівня — два знаки «-».
При додаванні нових пунктів і редагуванні існуючих потрібно слідкувати за тим, щоб був правильно виставлений рівень вкладеності. У разі неправильного виставлення рівня в якому-небудь пункті можливе неправильне відображення меню.
Наведемо приклад представлення меню на сайті і того ж самого меню у системі адміністрування.
Редагування пунктів меню
1. У панелі навігації вибрати модуль «Меню», «Редагувати меню».
2. На екрані з’явиться перелік усіх пунктів головного меню сайту.
5.2 Клієнтська частина сайту
Для того, щоб почати роботу із сайтом, необхідно відкрити вікно будь-якого встановленого браузера (Internet Explorer, Netscape Navigator, Mozilla або інший) і у рядку адреси ввести адресу комп’ютера, який використовується в якості сервера: http://agromat.com.ua/
Після цього у вікні браузера з’явиться головна сторінка сайту, яка містить загальну характеристику підприємства, його предмет діяльності, юридичну адресу тощо.
Сторінка сайту складається з таких елементів:
1. Верхнє навігаційне меню. Воно дозволяє здійснювати перехід на головну сторінку сайту та сторінку новин.
У цьому ж меню розміщене посилання «Версія для друку», за допомогою якого можна отримати сторінку, підготовлену для друку.
2. Головне меню сайту, яке забезпечує доступ до усіх інформаційних сторінок сайту.
3. Панель «Пошук по сайту», яка дозволяє здійснювати пошук потрібної інформації на сторінках сайту.
4. Панель «Пошук в Інтернеті», яка дає відвідувачам сайту можливість шукати інформацію в Інтернеті за допомогою пошукової системи Google.
5. Прогноз погоди — панель, у якій відображається погодний інформер сайту gismeteo.ua.
6. Панель «Опитування» розміщується на сайті у нижній правій нижній частині сторінки. Кожний відвідувач сайту має змогу голосувати один раз на добу. Повторні голоси користувачів протягом доби не враховуються. Якщо на сайті проводяться одразу кілька голосувань, то відвідувач має змогу брати участь у кожному з них, але голосувати лише по одному разу у кожному з опитувань.
7. Панель «Відвідування сайту», у якій відображається інформація про кількість унікальних відвідувачів за сьогоднішній день, за весь період роботи сайту та кількість загальну переглядів поточної сторінки сайту.
5.2.1 Сторінки сайту
Уся інформація на сайті подається за допомогою інформаційних сторінок. Перехід між цими сторінками здійснюється за допомогою головного меню. Для того, щоб переглянути сторінку виберемо у головному меню який-небудь пункт. Наприклад, вибравши пункт «Каталог продукції - Вази», отримаємо сторінку з фотографіями ваз, які виробляються на підприємстві.
Аналогічним способом вибравши у головному меню пункт «Експорт» отримаємо сторінку з інформацією про експорт за кордон українського каменю типу «граніт».
Тепер, отримаємо роздруківку сторінки, яку в даний момент відображено у вікні браузера. Для цього натиснемо на посилання «Версія для друку», яке знаходиться у верхньому навігаційному меню. В результаті буде отримано сторінку, яка містить тільки центральну частину сторінки сайту, яка містить лише інформацію, без навігаційних елементів, панелей та банерів. Тепер можна вибрати у верхньому меню браузера пункт «Файл — Печать» і надрукувати сторінку.
Якщо ж вибрати пункт «Файл — Печать» без використання «версії для друку», то виникнуть незручності, пов’язані з тим, що при друкуванні сторінки сайту друкують також і усі навігаційні елементи, банери, панелі тощо.
Нижче наведено ілюстрації, які демонструють зручність використання «версії для друку».
5.2.2 Новини
Для того, щоб переглянути новини, натиснемо на посилання «Новини», яке знаходиться у верхньому горизонтальному меню сайту.
На сторінці побачимо навігатор, за допомогою якого можна вибрати місяць та рік, коли було додано новину. Нижче, під навігатором, знаходиться список заголовків новин. Якщо натиснути на який-небудь заголовок, потрапимо на сторінку, яка містить повний текст новини.
5.2.3 Пошук по сайту
Вся інформація, яка розміщується на сайті індексується, що дає можливість відвідувачам сайту шукати сторінки за допомогою інтегрованої в сайт пошукової системи.
Для того, наприклад, щоб знайти усі сторінки, на яких зустрічається слово «граніт» потрібно вписати це слово у рядок введення, що розміщений на панелі «Пошук по сайту» і натиснути на кнопку «Шукати».
На екрані з’явиться сторінка, яка вміщує список усіх знайдених сторінок. Для кожної знайденої сторінки виводиться її назва, назва розділу сайту, у якому розміщена сторінка та два посилання — «відкрити у новому вікні» і «перейти».
Пошукова форма, яка знаходиться у верхній частині сторінки дозволяє змінювати пошуковий запит та критерії пошуку. Наприклад, є можливість вибору логічної операції (І, АБО), яка визначає, яким чином слова шуканого словосполучення повинні сполучатися на сторінці. Операція І вказує на те, що сторінка повинна містити усі слова заданого словосполучення, а операція АБО — на те, що сторінка має містити хоча б одне із слів.
5.2.4 Інтернет-опитування
На сайті постійно проводяться інтернет-опитування відвідувачів сайту з актуальних питань. Кожний відвідувач може брати участь в одному або більше опитуваннях, але голосувати у кожному опитуванні один раз на добу. Повторні голоси не враховуються.
6. Керівництво програмісту
6.1 Структура бази даних
Рис. 6.1.1. Структура бази даних
Далі наводиться опис структури кожної таблиці.
Таблиця «admins». У таблиці зберігаються облікові записи адміністраторів.
· admin_id — int (11) — ID-номер адміністратора;
· admin_login — varchar (20) — логін;
· admin_password — text — пароль;
· admin_email — varchar (50) — адреса електронної пошти;
· admin_roles — text — права доступу;
· admin_lastaccess — datetime — дата останнього доступу;
· admin_name — varchar (50) — прізвище, ім'я адміністратора;
· admin_occupation — varchar (50) — назва посади адміністратора;
Таблиця «news».
· news_id — int (11) — ID-номер новини;
· news_title — text — заголовок новини;
· news_short_text — text — короткий текст;
· news_date — datetime — дата;
Таблиця «indexes».
· index_id — int (11) — ID-номер запису;
· index_text — text — містить ключові слова;
· index_type — varchar (15) — абревіатура модуля;
· index_number — int (11) — кодовий номер сторінки у заданому модулі;
Таблиця «menu».
· item_id — int (11) — ID-номер пункту меню;
· item_title — text — назва пункту меню;
· item_link — varchar (30) — посилання;
· item_target — enum ('1', '2') — 1 — відкривати у існуючому вікні; 2 — відкривати у новому вікні;
· item_bold — enum ('Y', 'N') — ознака виділення пункту жирним шрифтом;
· item_italic — enum ('Y', 'N') — ознака виділення пункту курсивом;
· item_underline — enum ('Y', 'N') — ознака виділення пункту підкресленням;
· item_level — int (11) — рівень вкладеності пункту;
· item_modul_name — varchar (20) — абревіатура модуля;
· item_modul_id — int (11) — кодовий номер сторінки у заданому модулі;
Таблиця «chapters».
· chapter_id — int (11) — ID-номер розділу;
· chapter_name — text — назва розділу;
· chapter_parent_id — int (11) — «батьківський» розділ;
Таблиця «pages».
· page_id — int (11) — ID-номер сторінки;
· page_name — text — назва сторінки;
· page_date_of_creation — datetime — дата створення сторінки;
· page_date_of_modification — datetime — дата останньої модифікації сторінки;
· page_chapter_id — int (11) — ID-номер розділу;
· page_position — bigint (20) — порядковий номер сторінки (використовується для ручного управління порядком відображення сторінок).
Таблиця «params».
· param_id — int (11) — ID-номер параметру;
· param_name — varchar (20) — назва параметру;
· param_value — text — значення параметру;
Таблиця «polls».
· poll_id — int (11) — ID-номер голосування;
· poll_text — text — текст запитання;
· poll_values — text — кількість відданих голосів для кожного варіанту відповіді;
· poll_answer — text — варіанти відповідей;
· poll_creation_date — datetime — дата створення голосування;
· poll_enabled — enum ('Y', 'N', 'H') — дозволити голосування (Y), заборонити голосування (N), сховати голосування від відвідувачів сайту (H).
Таблиця «pollsip».
· ip_id — int (11) — ID-номер запису;
· ip_address — varchar (20) — IP-адреса компютера, з якого було проголосовано;
· poll_id — int (11) — ID-номер голосування;
· ip_date — datetime — фіксує дату, коли було проголосовано;
Таблиця «visitors».
· visitor_id — bigint (20) — ID-номер запису;
· visitor_ip — varchar (20) — IP-адреса відвідувача сайту;
· visitor_date — datetime — дата останнього візиту;
· visitor_page — text — остання переглянута сторінка.
6.2 Опис ядра портальної системи
Скрипти та класи, які реалізують ядро портальної системи розміщуються у каталозі /modules/main/scripts/.
1. database.php — скрипт, який встановлює з'єднання з базою даних
$DB_HOSTNAME = «localhost»;
$DB_USER = «root»;
$DB_PASSWORD = «ve2klD3w»;
$DB_NAME = «cmssite»;
$conn = mysql_connect ($DB_HOSTNAME, $DB_USER, $DB_PASSWORD) or
trigger_error (mysql_error (), E_USER_ERROR);
mysql_select_db ($DB_NAME);
mysql_query («SET NAMES cp1251», $conn);
?>
2. modules.php — містить реалізацію класу Modules. Даний клас здійснює автоматичне сканування директорій, пошук модулів і виконує їх завантаження.
3. indexator.php — містить реалізацію класу Indexator, який використовується портальною системою для індексування сторінок і занесення ключових слів у базу даних, використовується для організації пошуку по сайту.
4. DataSet.php — містить реалізацію класу DataSet, який використовується для виконання базових операцій з таблицями бази даних.
class DataSet
{
var $TableName; /* ім'я таблиці у базі даних */
var $IndexField; /* поле таблиці, які є індексним */
var $QuantityOfLinesOnPage; /* кількість записів, які потрібно розмістити на одній сторінці */
var $WhereStatement; /* частина sql-запиту, яка визначає умови вибірки записів з бази даних */
var $OrderByStatement; /* частина sql-запиту, яка визначає порядок сортування записів */
function DataSet ($tableName, $indexField,
$quantityOfLinesOnPage) /* конструктор класу, який приймає три параметри. За допомогою першого параметру передається ім'я таблиці, другий параметр — це ім'я індексного поля, третій — кількість рядків на одній сторінці */
function AddOrderByStatement ($field, $value) /* встановлює порядок слідування записів. Перший параметр визначає ім'я поля, за яким здійснюється сортування. Другий параметр визначає порядок сортування (ASC, DESC) */
function AddWhereStatement ($value) /* додати умову WHERE */
function GetQuantityOfRows () /* повертає загальну кількість вибраних записів */
function GetRowById ($id) /* повертає запис із заданим ID-номером */
function GetQuantityOfPages () /* повертає загальну кількість сторінок */
function GetRowsOnPage ($page_number) /* повертає усі записи для сторінки, номер якої передається у вигляді параметру */
}
4. CTemplate.php — містить реалізацію класу CTemplate, який дозволяє виконувати операції з шаблонами html-сторінок.
class CTemplate
{
var $page_address; /* шлях до шаблонної html-сторінки */
var $params; /* масив значень параметрів підстановки */
function CTemplate ($page_addr) /* конструктор класу, який здійснює ініціалізацію елементів-даних класу $page_address, $params */
function SetParam ($param_name, $param_value) /* встановити значення $param_value параметру з іменем $param_name */
function GetPageWithParams ()
function GetPage ()
function ShowPage ()
function ShowPageWithParams ()
}
6.3 Структура модуля портальної системи
Всі модулі портальної системи зберігаються у каталозі /modules/.
Кожний модуль має таку структуру:
· module. php — скрипт, який містить усі класи, які реалізують модуль;
· config. php — конфігураційний файл, у якому розміщується інформація, яка необхідна для реєстрації модуля у портальній системі;
· /admin — каталог, який містить шаблони html-файлів, у яких зберігаються форми, що використовуються системою адміністрування при виконанні операцій по роботі з даними.
· /user — каталог, який містить шаблони html-файлів, що використовуються при відображення даних для відвідувачів сайту у користувацькій частині сайту.
Конфігураційний файл config. php призначений для реєстрації модуля у портальній системі. У ньому міститься інформація про автора модуля, дата його створення тощо.
Для усіх модулів системи діють одні й ті самі правила написання конфігураційного файла. У ньому визначається асоціативний двовимірний масив. Перший індекс цього масиву представляє собою абревіатуру модуля, а другий — назву пераметра. Присовоєння значення параметру здійснюється таким чином:
$Modules[`Абревіатура'] [`Назва параметра'] = «Значення»;
Для кожного модуля в обов’язковому порядку мають бути визначені такі параметри:
· CodeName — кодове ім'я модуля. Використовується при зв’язуванні модуля з іншими модулями системи (наприклад, модуля «Новини» з модулем «Пошук по сайту»);
· Name — назва модуля. Відображається у системі адміністрування разом з піктограмою модуля;
· Version — версія модуля;
· Date — дата релізу модуля;
· Author — інформація про автора;
· Directory — назва підкаталогу у каталозі /modules/, у якому зберігаються програмні скрипти модуля;
· Admin — визначає, чи потрібно реєструвати модуль у (деякі модулі можуть використовуються лише у користувацькій частині сайту).
· User — визначає, чи потрібно реєструвати модуль у користувацькій частині сайту (деякі модулі можуть використовуються лише у системі адміністрування сайту).
· Class — ім'я головного класу модуля. Кожний модуль складається як мінімум з одного класу, який будемо називати головним класом модуля, який, в свою чергу, може використовувати інші допоміжні класи.
6.4 Діаграма прецедентів
Рис. 6.4.1. Діаграма прецедентів
6.5 Розроблені класи
Модуль «Адміністратори сайту».
class Admins
{
function AdminDelete ($id);
function AdminUpdate ($admin_login, $admin_password, $admin_name, $admin_email, $admin_occupation, $admin_roles, $id);
function AdminSelect ($id);
function AdminEditHandler ();
function AdminsTable ();
function AdminsListForm ();
function AdminInsert ($admin_login, $admin_password, $admin_name, $admin_email, $admin_occupation, $admin_roles);
function GeneratePassword ();
function AdminAddForm ();
function AdminAddHandler ();
function Handler ();
function Form ();
}
Модуль «Новини»
class News
{
function GetNews ($count = 0);
function GetNewsByMonthAndYear ($year, $month);
function ReadNewsText ($id);
function WriteNewsText ($text, $id);
function NewsDelete ($news_id);
function NewsUpdate ($news_date, $news_title, $news_short_text, $news_text, $news_id);
function NewsInsert ($news_date, $news_title, $news_short_text, $news_text);
function NewsYearSelectForm ($syear);
function NewsMonthSelectForm ($smonth);
function NewsSelect ($news_id);
function NewsAdminTable ($year, $month);
function NewsAddHandler ();
function NewsEditHandler ();
function NewsDeleteHandler ();
function NewsAddForm ();
function NewsListForm ();
function NewsEditForm ();
function Form ();
function NewsUserSelectForm ($syear, $smonth);
}
Модуль «Інтернет-опитування»
class Polls
{
function GetActivePoll ();
function SetActivePoll ($id);
function GetPoll ($id);
function PollIpAdd ($poll_id, $ip);
function PollVisitorTest ($poll_id, $ip);
function PollVote ($poll_id, $answer_id, $ip);
function GetPolls ($type = 'A');
function PollDelete ($id);
function PollUpdate ($poll_text, $poll_values, $poll_answer, $poll_enabled, $id);
function PollInsert ($poll_text, $poll_values, $poll_answer, $poll_enabled);
function PollSelect ($id);
function PollsAdminTable ($enabled);
function PollAddHandler ();
function PollEditHandler ();
function PollDeleteHandler ();
function PollActiveHandler ();
function Handler ();
function PollAddForm ();
function PollsListForm ();
function ActivePollSelectForm ($id);
function PollActiveForm ();
function PollEditForm ();
function Form ();
function PollResultTable ($poll_id);
function PollListTable ();
function GetPollForm ($poll_id, $formname);
}
Модуль «Лічильник відвідувачів»
class Visitors {
function AddVisitor ($ip, $page);
function DifferentVisitorsCount ();
function TotalPagesViews ();
function TotalPageViewsByDifferentVisitors ($page);
function PageDifferentVisitorsCount ($page);
function DifferentVisitorsCountByDate ($year, $month, $day);
function Handler ();
function Form ();
}
Модуль «Погодний інформер»
class Weather {
function Form ()
function ReadWeather ()
function Handler ()
}
Висновки
В рамках даної роботи було реалізовано портальну систему, на основі якої працює веб-сайт ПП «Агромат».
При розробці даної роботи були виконані всі вимоги технічного завдання. Було перепроектовано структуру портальної системи та структуру бази даних; реалізовано ядро портальної системи; створено головний модуль, який забезпечує динамічне підключення усіх інших модулів; реалізовано програмні модулі, які забезпечують роботу модулів «новини», «сторінки», «Інтернет-опитування», «пошук по сайту» тощо.
Було реалізовано систему адміністрування веб-сайтом, яка дозволяє додавати та редагувати контент веб-сайту за допомогою веб-браузера. У системі адміністрування передбачено існування адміністраторів двох рівнів — головного адміністратора та адміністратора розділу.
Модульна організація розробленої системи дозволяє у будь-який момент часу доповнювати портальну систему новими модулями.
Організація відокремленого збереження програмного коду і шаблонних html-сторінок дозволяє вносити зміни у дизайн сайту не змінюючи при цьому програмного коду.
При розробці даного порталу було використано мову програмування РНР та сервер баз даних MySQL. В якості візуального редактора та засобів обробки графіки використано Adobe Dreamweaver CS3.
портальний сайт сервер контент
Список літератури
1. Хьюгс С., Змиевский А. «РНР. Руководство разработчика», М.: DiaSoft, 2001, -384 с.
2. Вайк Аллен, «РНР. Справочник», К.: Издательство «ДиаСофт», 2001, — 448 с.
3. Колисниченко Д. Н. «Самоучитель РНР 5», СПб.: «Наука и техника», 2004, — 556 с.
4. Ульман Л. «MySQL», СПб.: «ДМК Пресс», 2004, 352 с.
5. Ахо А., Хопкрофт Э., Ульман Дж. «Структуры данных и алгоритмы», М.: Издательский дом «Вильямс», 2000. — 384 стр.
6. Кормен Т., Лейзерсон Ч., Ривест «Алгоритмы: построение и анализ» М.: МЦНМО, 2000, — 960 стр.
7. Страуструп Б. «Язык программирования С++» М.-СПб: «Бином», 2001.
8. Гурман Д. «JavaScript. Библия пользователя», М.: «Діалектика», 2002, -958 с.
9. Мазуркевич А. «PHP: настольная книга программиста», М.: Новое знание, 2003, — 480 с.
10. Аткинсон, Леон «MySQL. Библиотека профессионала», — Пер. с англ. — М.: Издательский дом «Вильямс», 2002, — 624 с.
11. Ульман Л. «Основы программирования на РНР», — Пер. с англ. — М.: ДМК Пресс, 2001, — 288 с.
12. Матросов А. В., Сергеев А. О., Цаунин М. П. «HTML 4.0», — СПб.: БХВ — Петербург, 2003, — 672 с.
13. Петюшкин А. В. «HTML. Экспресс-курс», — СПб.: БХВ — Петербург, 2003, — 256 с.
14. Гончаров А. «Самоучитель HTML», — СПб.: Питер, 2002, — 240 с.
15. Котеров Д. В. «Самоучитель PHP4», — СПб.: БХВ — Петербург, 2003, — 576 с.
16. Харрис Э. «PHP/MySQL для начинающих», пер. с англ., — М.: КУДИЦ-ОБРАЗ, 2005, — 384 с.
17. Вильямсон Х. «Универсальный Dynamic HTML. Библиотека программиста», — СПб.: Питер, 2001, — 2004 с.
18. Ахо А., Хопкрофт Дж., Ульман Дж. «Построение и анализ вычислитель-ных алгоритмов». — М.: Мир, 1979. — 535 с.
19. Фейсон Т. «Объектно-ориентированное программирование на Borland C++ 4.5.» — К.: «Диалектика», 1996. — 544 с.
20. Т. А. Павловская «С/С++. Программирование на языке высокого уровня». - СПб.: Питер, 2002. — 464 с.