- •"Web-программирование" методические указания
- •Содержание
- •Введение
- •Лабораторная работа №1 Разработка приложений с помощью php
- •Теоретические сведения
- •Функция in_array
- •Функция array_search
- •Лабораторная работа №2 Работа с файлами в php
- •Теоретические сведения
- •Лабораторная работа №3 Разработка приложений бд на cервере MySql с помощью php
- •Краткие теоретические сведения
- •Взаимодействие php и MySql
- •Установка соединения
- •Выбор базы данных
- •Получение списка полей таблицы
- •Insert.Php
- •Лабораторная работа №4 Разработка сайта с использованием mvc фреймворка
- •Теоретические сведения
- •Лабораторная работа №5 Работа с таблицами бд с использованием mvc фреймворка
- •Теоретические сведения
- •View/Profiles.Php
- •Лабораторная работа №6 Прототипирование веб-сайта с использованием технологий «классического» php и шаблонизатора Smarty
- •Теоретические сведения
- •Возможности php
- •Задание на работу:
- •Лабораторная работа №7 Использование Ajax и js библиотек
- •Теоретические сведения
- •Поддержка ajax браузерами
- •Страница html для примера ajax
- •Код JavaScript приложения ajax
- •Серверные страницы ajax для asp и php
- •Пример ajax на php
- •Создание объекта xmlHttp
- •Xml, json или текст
- •Пример со списком контактов
- •Dom (Document Object Model).
- •Взаимодействие php и xml посредством dom xml
- •Перевод данных xml-файла в объекты и классы php
- •Задание на работу:
- •Лабораторная работа №8 Разработка компонент для cms Joomla. Разработка простого компонента для пользовательской части
- •Лабораторная работа №9 Разработка компонент для cms Joomla. Разработка компонента с использованием базы данных
- •Лабораторная работа №10 Разработка компонент для cms Joomla. Разработка компонента с административной частью
- •Лабораторная работа №11 Разработка приложения с помощью технологии asp.Net
- •Теоретические сведения
- •Первый проект
- •Задание на работу
- •Лабораторная работа №12 Авторизация. Поддержка сеанса пользователя
- •Теоретические сведения
- •Лабораторная работа №13 Работа с бд в asp.Net
- •Теоретические сведения
- •Лабораторная работа №14 Оформление дизайна страниц в asp.Net
- •Теоретические сведения
- •Основы Master Pages
- •Темы и skin (шкурки)
- •Web-програмування
Лабораторная работа №5 Работа с таблицами бд с использованием mvc фреймворка
Цель работы: получить практические разработки модулей приложений с помощью фреймворка CodeIgniter для разработки каталога.
Теоретические сведения
Использование хелперов:
Хелперы, как говорит их название, помогают в решении задач разработчика. Каждый файл с хелперами — это простая коллекция функций в той или иной категории.
URL Хелперы - помогают создавать ссылки,
Хелперы форм - помогают создать элементы форм
Текстовые хелперы - выполняют различные функции по форматированию текста
…..
Если нужно загрузить более одного хелпера, можно перечислить их в одном массиве:
$this->load->helper( array('helper1', 'helper2', 'helper3') );
Авто-загрузка хелперов - если необходим хелпер для всего приложения, можно указать CodeIgniter, чтобы он загружал его при инициализации приложения.
В файле application/config/autoload.php добавить хелпер в массив автозагрузки:
$autoload['helper'] = array('url');
П
Users id First_name Last_name nick email password
Структура приложения:
Controllers:
admin.php
Models:
-blog_model.php
-user_model.php
-post_model.php
Views:
Content, например View/post.php
<div>
<div style="color:blue"><?=$this->session->flashdata('info')?></div>
<table border="1">
<tr> <td> Id </td> <td> Id_user </td> <td> post_name </td> <td> post_data </td><td> post_delete</td>
</tr>
<?php foreach($posts as $post):?>
<tr>
<td><?=$post->id_post?></td>
<td><?=$post->first_name?></td>
<td><?=$post->contents?></td>
<td><?=$post->created_at?></td>
<td><?=anchor("admin/delete_post/$post->id", "delete")?></td>
</tr>
<?php endforeach; ?>
</table>
</div>
View/Profiles.Php
<div>
<div style="color:blue"><?=$this->session->flashdata('info')?></div>
<table border="1">
<tr> <th>Id:</th> <td><?=$profile->id?></td></tr>
<tr> <th>First name:</th> <td><?=$profile->first_name?></td></tr>
<tr> <th>Last name:</th> <td><?=$profile->last_name?></td></tr>
<tr> <th>Nick:</th><td><?=anchor("admin/edit_profile", $profile->nick)?></td>
</tr>
<tr> <th>E-mail:</th> <td><?=$profile->email?></td></tr>
</table>
</div>
Controller/admin.php
<?php
class Admin extends Controller {
function Admin()
{ parent::Controller();
$this->load->model('Blog_model', 'blog');
$this->load->model('User_model', 'user');
$this->load->model('Post_model', 'post');
$this->load->helper(array('form', 'text', 'admin')); }
function index()
{ redirect("admin/settings"); }
function settings() {
$data['settings'] = $this->blog->current();
$this->_render('settings', $data); }
function profile() {
$data['profile'] = $this->user->current(); // Обращение к модели, вызов функции
$this->_render('profiles', $data); } // имя view
function post() {
$data['posts'] = $this->post->all();
$this->_render('posts', $data); }
function edit_profile() {
$this->form_validation->set_rules('profile[first_name]', 'First name', 'required');
$this->form_validation->set_rules('profile[last_name]', 'Last name', 'required');
$this->form_validation->set_rules('profile[nick]', 'Nick', 'required');
if ($this->form_validation->run() == FALSE) {
$this->session->set_flashdata('info', "Profile not saved!");
$data['profile'] = $this->user->current();
$this->_render('edit_profile', $data); }
else { $this->user->edit_profile($this->input->post('profile')); // Обращение к модели, вызов функции edit_profile. Передача данных по методу post
$this->session->set_flashdata('info', "Provile saved!");
redirect('admin/profile'); } }
Задание на работу:
Используя MVC фреймворк выполнить следующее:
Разработать модуль авторизации пользователей
Выполнить валидацию данных
Реализовать crud операции (create, read, update, delete) над основными сущностями предметной области