Портал освітньо-інформаційних послуг «Студентська консультація»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Програмні бібліотеки підтримки розробки Web-додатків

Тип роботи: 
Дипломна робота
К-сть сторінок: 
70
Мова: 
Українська
Оцінка: 

Ініціалізація проекту та обробка запиту засобами CodeIgniter

 
3.1. Ініціалізація обробки запиту засобами CodeIgniter
 
Інсталяційний пакет CodeIgniter містить усі необхідні файли проекту, які необхідно розгорнути у кореневий каталог htdocs Web-сервера Apache, попередньо очистивши його вміст. Файлова структура при цьому буде мати вигляд як на рисунку 2. 2. За замовчуванням каталоги controllers та views містять тестові файли controllers. php та welcome. php відповідно. Ці файли можна використовувати як зразок для створення власного проекту. Розглянемо детальніше хід виконання програми на прикладі даного зразка. Надрукувавши в браузері рядок запиту http: //localhost/index. php/, на екрані отримаємо результат, подібний зображеному на рисуноку 3. 1.  
Рисунок 3. 1 Результат обробки стартової сторінки проекту-зразка
 
Алгоритм обробки полягає у наступному. Web-сервер, отримавши запит, передає його на виконання файлу index. php, який знаходиться безпосередньо в htdocs. Оскільки в URL не міститься жодного уточнення після index. php, то застосовуються налаштування за умовчанням, вказані в конфігураційному файлі routes. php:
$route['default_controller'] = 'welcome';
Завдяки цьому, управління передається у контролер Welcome з файлу application/controllers/welcome. php (за домовленістю назва файлу і класу має співпадати, але назва класу записується з великої літери). Код файлу welcome. php представлено на рисунку 3. 2:
<? php if (! defined ('BASEPATH')) exit ('No direct script access allowed') ;
class Welcome extends CI_Controller {
function__construct ()
{
parent: : __construct () ;
}
function index ()
{
$this->load->view ('welcome_message') ;
}
}
Рисунок 3. 2. Код файлу-контролера welcome. php
Основу файлу welcome. php складає клас Welcome, успадкований від CI_Controller – базового класу для всіх контролерів проекту. Суттєвим методом в ньому є index (), оскільки саме цей метод викликається за замовчуванням у випадку, коли URL не містить додаткових елементів, крім …/index. php. В цьому методі записано код:
$this->load->view ('welcome_message') ;
який означає, що необхідно передати управління компоненту подання (view) з назвою файла welcome_message. php з метою генерації сторінки HTML. Як правило, файли подання містять код HTML з найпростішими вставками мовою PHP: операторами та функціями виведення (echo, print тощо), а також циклів (for, foreach та іншими). Це обумовлено власне метою подання – об‘єднання статичного коду HTML та динамічних даних, отриманих в результаті взаємодії програми з базою даних, файлами тощо.
 
3.2. Приклад застосування CodeIgniter для задачі аутентифікації користувача
 
Розглянемо приклад аутентифікації користувача з використанням його ім‘я та паролю, які зберігаються у базі даних. Узагальнений алгоритм розробки даної програми полягає у наступному.
1. Підготовка бази даних: створення таблиці, занесення даних, налаштування конфігурації проекту.
2. Реалізація контролеру проекту з функціями виведення форми уведення даних про користувача та виведення результату аутентифікації.
3. Створення моделі з функцією перевірки імені/паролю користувача.
4. Створення подання сторінки форми уведення даних про користувача та сторінки результату аутентифікації.
 
Підготовка бази даних
Підготовка структур бази даних складається зі створення бази даних (команда create database userdb), вибору бази даних (команда use userdb), створення таблиці users із полями id, uname та upwd), а також внесення рядка даних у таблицю (команда insert into). Приклад виконання наведених команд зображено на рисунку 3. 3.
C: \xampp\mysql\bin>mysql -u root -p Enter password: ********
Welcome to the MySQL monitor. Commands end with; or \g.
Vour MySQL connection id is 2
Server version: 5. 0. 51b-community-log MySQL Community Edition (GPL)
Type 'help; ' or ’\h' for help. Type '\c' to clear the buffer.
mysql> create database userdb;
Query OK, 1 row affected (0. 05 sec)
mysql> use userdb;
Database changed
mysql> create table users (id integer auto_increment, uname varchar (20), upwd ua rchar (20), primary key (id)) ;
Query OK, O rows affected (0. 01 sec)
mysql>insert into users (uname, upwd) values ('userl', ‘ pwd1') ;
Query OK, 1 row affected (0. 03 sec)
mysql> select * from users;
| id | uname | upwd |
| 1 | userl | pwd1 |
1 row in set (0. 0O sec)
mysql>
Рисунок 3. 3. Протокол команд підготовки бази даних
 
Реалізація контролера проекту
Як відзначалось вище, контролер виконує функцію управління ходом обробки запиту від користувача. В прикладі необхідно реалізувати два метода класу контролера: виведення форми уведення ім‘я користувача та його паролю, а також вікна результату аутентифікації. Програмний код контролера показано на рисунку 3. 4. Клас контролера містить два відповідних методи: index () та login_result (). Перший метод викликає подання login для виведення форми. Другий метод більш складний: відбувається завантаження об‘єкта взаємодії з базою даних та об‘єкта моделі usermodel. Після цього викликається у об‘єкті моделі метод login, який порівнює передані у якості параметрів дані про користувача з вмістом бази даних. Якщо порівняння виконано успішно, формується масив $data для передачі у подання та викликається обробка подання afterloginOK. Інакше – у масив
Фото Капча