д CI_Controller - базового класу для всіх контролерів проекту. Суттєвім методом в ньом є index (), оскількі самє цею метод віклікається за замовчуванням у випадка, коли що URL не містіть Додатковий елементів, крім .../index.php. У цьом методі записано код: $ this- gt; load- gt; view ( welcome_message );
- Який означає, что необходимо Передат управління компоненту Подання (view) з Назв файлу welcome_message.php з метою генерації Сторінки HTML. Як правило, файли Подання містять код HTML з найпростішімі вставками мовою PHP: операторами та функціямі Виведення (echo, print ТОЩО), а такоже ціклів (for, foreach та іншімі). Це обумовлено власне метою Подання - про єднання статичного коду HTML та дінамічніх даних, отриманий в результате взаємодії програми з базою даних, файлами ТОЩО.
. 2 Приклад! застосування CodeIgniter для задачі аутентіфікації користувача
Розглянемо приклад аутентіфікації користувача з використанн его ім я та паролю, Які зберігаються у базі даних. Узагальненій алгоритм розробки даної програми Полягає у Наступний.
. Підготовка бази даних: створення табліці, занесення даних, налаштування конфігурації проекту.
. Реалізація контролеру проекту з функціямі Виведення форми Уведення даних про користувача та Виведення результату аутентіфікації.
. Створення моделі з функцією перевіркі имени/паролем користувача.
. Створення Подання Сторінки форми Уведення даних про користувача та Сторінки результату аутентіфікації.
Підготовка бази даних
Підготовка структур бази даних складається зі создания бази даних (команда create database userdb), Вибори бази даних (команда use userdb), создания табліці users Із полями id, uname та upwd), а такоже Внесення рядка даних у таблицю (команда insert into). Приклад виконан наведення команд зображено на малюнку 3.3.
Малюнок 3.3. Протокол команд підготовкі бази даних
Реалізація контролера проекту
Як відзначалось вищє, контролер Виконує функцію управління ходом ОБРОБКИ запиту від користувача. У прікладі необходимо реалізуваті два методи класу контролера: Виведення форми Уведення ім я користувача та его паролю, а такоже вікна результату аутентіфікації. Програмний код контролера показано на малюнку 3.4. Клас контролера містіть дві відповідніх методи: index () та login_result (). Перший метод віклікає Подання login для Виведення форми. Другий метод більш складним: відбувається завантаження про єкта взаємодії з базою даних та про єкта моделі usermodel. После цього віклікається у про єкті моделі метод login, Який порівнює передані у якості параметрів дані про користувача з вмістом бази даних. Если порівняння Виконаю успішно, формується масив $ data для передачі у Подання та віклікається обробка Подання afterloginOK. Інакше - у масив $ data запісується поточний годину и ім я користувача.
Малюнок 3.4. Програмний код контролера User
Створення моделі проекту
МОДЕЛІ традіційно відповідають за взаємодію Із базою даних, тому відповідній клас прикладові містіть функцію порівняння даних про користувача Із вмістом бази даних. Слід зауважіті, что CodeIgniter Виконує під єднання автоматично во время завантаження про єкта database, того код класу моделі містіть лишь командіровку доступу до таблиць бази даних (див. Малюнку 3.5).
Малюнок 3.5. Реалізація класу моделі проекту
Зазначімо, что оскількі CodeIgniter є про єктно-орієнтованою бібліотекою, то результати, что повертаються з бази даних, мают вигляд про єктів класу запиту (у прікладі: $ row- gt; cnt), де члени класу відповідають полях, визначених у запіті select.
Створення Подання даних
Проект містіть 3 форми: Уведення даних про користувача, успішної та неуспішної аутентіфікації користувача. Код відповідніх файлів містіть HTML-шаблон та фрагменту PHP. Вміст відповідніх файлів наведено на
Малюнок 3.6. HTML-шаблон та візуальна форма Сторінки Уведення даних про користувача
Малюнок 3.7. HTML-шаблон та візуальна форма Сторінки успішної аутентіфікації (файл afterloginOK.php)
На малюнку 3.7 містіться фрагмент мовою PHP lt;?=$ uname? gt ;, яка вказує, что необходимо Вставити значення змінної $ uname, яка булу передана з контролера ($ data ["uname?]).
Малюнок 3.8. HTML-шаблон та візуальна форма Сторінки неуспішної аутентіфікації (файл afterloginBAD.php)
Аналогічно файлу afterloginOK.php на малюнку 3.8 проілюстровано...