Смекни!
smekni.com

Розробка програмного модулю для визначення IQ людини (стр. 5 из 7)

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

Абсолютно нова мова програмування одержала нове ім'я. Розробники відмовилися від доповнення про персональне використання, яке було в абревіатурі PHP/FI. Мова була названа просто PHP – абревіатура, що містить рекурсивний акронім (англ. PHP: Hypertext Preprocessor – «PHP: Препроцесор Гіпертексту»).

До кінця 1998 року PHP використовувався десятками тисяч користувачів. Сотні тисяч веб-сайтів повідомляли про те, що вони працюють з використанням цієї мови. У той час PHP 3.0 був встановлений приблизно на 10 % веб-серверів Internetу.

PHP 3.0 був офіційно випущений в червні 1998 року після 9 місяців публічного тестування.

До зими 1998 року, практично відразу після офіційного виходу PHP 3.0, Енді Гутманс і Зів Сураські почали переробку ядра PHP. У завдання входило збільшення продуктивності складних додатків і поліпшення модульності базису коду PHP. Розширення дали PHP 3.0 можливість успішно працювати з набором баз даних і підтримувати велику кількість різних API і протоколів, але PHP 3.0 не мав якісної підтримки модулів і додатки працювали неефективно.

Новий «движок», названий Zend Engine (від імен творців, Зіва і Енді, також засновників Zend Technologies), успішно справлявся з поставленими завданнями і вперше був представлений у середині 1999 року. PHP 4.0, заснований на цьому движку і такий, що приніс з собою набір додаткових функцій, офіційно вийшов в травні 2000 року, майже через два роки після виходу свого попередника PHP 3.0. На додаток до поліпшення продуктивності, PHP 4.0 мав ще декілька ключових нововведень, таких як підтримка сесій, буферизація висновку, безпечніші способи обробки інформації, що вводиться користувачем, і декілька нових мовних конструкцій.

Оновлення PHP 4 випускатимуться тільки до кінця 2007 року. До цього ж часу здійснюватиметься офіційна підтримка четвертої версії. Далі до 8 серпня 2008 року в міру необхідності з'являтимуться тільки критичні оновлення безпеки. З 9 серпня четверта версія PHP пішла в історію.

П'ята версія PHP була випущена розробниками 13 липня 2004 року. Зміни включають оновлення ядра Zend (Zend Engine 2), що істотно збільшило ефективність інтерпретатора. Введена підтримка мови розмітки XML. Повністю перероблені функції ООП, які стали багато в чому схожі з моделлю, використовуваною в Java. Зокрема, введена деструкція, відкриті, закриті і захищені члени і методи, остаточні члени і методи, інтерфейси і клонування об'єктів. На даний момент найстабільнішими і часто використовуваними є саме версії 5.xx, навіть не дивлячись на те, що вже знаходиться у стадії розробки версія PHP 6, з жовтня 2006 року [20].


3 Реалізація програмного продукту

3.1 Структура і функціональне призначення модулів системи, їх взаємозв’язок

Даний програмний продукт складається з багатьох модулів, які містять класи, функції для оброблення даних та скриптів, які працюють з цими модулями. Усі класи знаходяться в різних файлах і їх назва починається з префікса «cl_». Всі класи наслідуються від головного класу, драйвера бази даних MySQL mysqldriver.php, який в свою чергу реалізує абстрактний клас abstract.dbdriver.php. Для кожного модуля існує окремий файл index.php, який працює з відповідним модулем.

Веб-додаток складається з таких модулів:

а) модуль для керування адміністраторами – admin:

1) cl_administrators.php – клас для роботи керування адміністраторами;

2) checkFIO.php – файл, де відбувається перевірка на введення ПІП;

3) checkLogin.php – файл для перевірки введеного логіна (чи доступний такий логін користувачу);

4) checkPassword.php – файл, для перевірки введення паролю та перевірки співпадання повторного паролю;

б) модуль для керування зареєстрованими користувачами – users:

1) cl_users.php – клас для роботи керування зареєстрованими користувачами;

2) cl_autorize.php – клас для авторизації зареєстрованих користувачів;

3) checkFIO.php – файл, де відбувається перевірка на введення ПІП;

4) checkLogin.php – файл для перевірки введеного логіна (чи доступний такий логін користувачу);

5) checkPassword.php – файл, для перевірки введення паролю та перевірки співпадання повторного паролю;

в) модуль для роботи з тестом – test:

1) cl_test.php – клас для роботи з тестом;

2) test_config.php – файл конфігурації тесту;

г) cl_authorization.php – клас для доступу в систему управління;

д) cl_db.php – клас, який відповідає за підключення і відключення від бази даних і підключає драйвер бази даних;

е) cl_navigation.php – клас для навігації по сторінкам;

є) модуль відправки повідомлень – mailer:

1) class.phpmailer.php – клас для відправки повідомлень;

2) FriendMail.php – клас для перевірки введених даних, який використовує клас class.phpmailer.php;

ж) модуль автоматичного тесту для розпізнавання комп’ютерів і людей – kcaptcha:

1) kcaptcha.php – клас автоматичного тесту для розпізнавання комп’ютерів і людей;

2) kcaptcha_config.php – файл конфігурації капчі для сайту;

3) kcaptcha_config_login.php – файл конфігурації капчі для системи управління;

4) font_preparer.php – файл для налаштування шрифту капчі;

Веб-додаток складається з наступних файлів:

index.php – головна сторінка веб-додатку;

test.php – сторінка тестування;

timershow.php – файл, який показує таймер, час проходження тесту;

finish.php – сторінка результату тестування;

check.php – файл для авторизації, який використовує клас для авторизації;

main.php – головна сторінка системи управління;

logout.php – файл, який видаляє дані з сесії, викликається при виході з системи управління;

config.php – файл налаштування, де зберігаються параметри доступу до бази даних;

jquery.js – бібліотека JavaScript, яка призначена для взаємодії JavaScript та HTML;

jquery.alerts.js – плагін для jquery, який задає стиль стандартним діалоговим вікнам;

style.css – таблиця стилів для сайту;

main.css – таблиця стилів для системи управління.

Наведемо схему головного меню системи управління (рисунок 3.1).

Рисунок 3.1 – Схема головного меню системи управління

3.2 Розробка програмних модулів

Розробка програмного продукту починається зі створення бази даних. Для зручності створення бази було обрано менеджер бази даних phpMyAdmin. Зайшовши в менеджер бази даних, у полі «Новая база данных» потрібно вказати назву бази iq_test та натиснути кнопку «Создать» (рисунок 3.2).

Рисунок 3.2 – Створення нової бази даних

Далі починаємо створювати таблиці. Спочатку створюємо таблицю «Запитання». У відповідне поле вписуємо назву таблиці «t_question», задаємо кількість полів і натискуємо кнопку «ОК» (рисунок 3.3).


Рисунок 3.3 – Створення таблиці «Запитання»

Далі задаємо назви полів, ключі таблиці, типи, атрибути, значення за замовчуванням.

Щоб вказати, що поле є ключовим потрібно обрати опцію з іконкою

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

Вигляд структури таблиці «Запитання» в менеджері наведено на рисунку 3.4.

Рисунок 3.4 – Структура таблиці «Запитання»

Аналогічно створюємо таблиці «Відповіді», «Рейтинг», «Авторизація», «Користувачі».

Для виконання операцій над таблицями або над базою даних можна використати головне меню менеджера (рисунок 3.5). А для того щоб працювати з потрібною таблицею її необхідно вибрати зі списку зліва (рисунок 3.6).


Рисунок 3.5 – Головне меню менеджера бази даних

Рисунок 3.6 – Список таблиць в базі даних

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

Опис модулів, що містять функції.

Файл cl_administrators.php містить наступні функції:

SelectData($table_names, $cond_names, $limit_from, $limit_count) – відповідає за вибірку інформації про адміністраторів, має параметри: назва таблиці, умова вибору даних, позиція з якої вибирати дані та кількість записів;

DeleteData($table_names, $list) – призначена для видалення даних про адміністраторів, має параметри: назва таблиці, масив номерів записів;

InsertData($table_names, $list_values) – відповідає за додавання записів, має параметри: назва таблиці, значення полів відповідно;

Updatedata($table_names, $list_values, $cond_names) – призначена для редагування записів про адміністраторів, має параметри: назва таблиці, значення полів, умова редагування;

Showdata($limit_from, $limit_count, $query_string) – відповідає за відображення інформації про адміністраторів, має параметри: позиція з якої показувати записи, кількість записів, рядок запиту.

Файл cl_users.php містить наступні функції:

SelectData($table_names, $cond_names, $limit_from, $limit_count) – відповідає за вибірку інформації про зареєстрованих користувачів, має параметри: назва таблиці, умова вибору даних, позиція з якої вибирати дані та кількість записів;