(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Проекты | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация (English)

Разработка приложений для Web

Цели работы

Получить навыки работы с HTTP-протоколом, используя средства PHP. Освоить возможности использования сессий для создания Web-приложений, научиться выполнять аутентификацию и обрабатывать данные html-форм, переданные методами GET и POST, научиться выполнять загрузку файлов на удаленный сервер (upload).

Описание работы

Реализовать систему для загрузки и обработки изображений. Для выполнения задания необходимо создать отдельную директорию в каталоге public_html.

Описание системы

Система должна состоять из трех основных модулей:
Первый - login.php - страница 1 (С1)

Выводит форму для ввода логина/пароля, осуществляет проверку правильности введенных данных. В случае успешной проверки загружает форму для загрузки рисунка. При нажатии кнопки submit выполняется перенаправление на страницу С2.

Второй - upload.php (С2)

Показывает загруженное пользователем изображение, загружает его на сервер. Выводит список фильтров для загруженного изображения. При выборе фильтра происходит переход на страницу С3.

Третий - filter.php (С3)

Осуществляет фильтрацию и вывод изображения в соответствии с выбранным фильтром. Сохраняет отфильтрованную картинку в файл.

Основные шаги

 #   Задание 
1 С использованием PHP-сессий реализовать систему аутентификации пользователя "user" с паролем "qwerty". Модуль login.php выводит поля формы для ввода логина/пароля, осуществляет проверку. В случае удачной аутентификации генерируется форма для загрузки файла: поле выбора файла (<input type="file" ...>) и кнопка submit. Необходимо исключить возможность загрузки страниц upload.php и filter.php без ввода логина и пароля (например, просто указав ссылку на upload.php в строке адреса).
2 Создать отдельные каталоги dir_upload и dir_filtered для загрузки и сохранения фильтрованных файлов соответственно. Используя расширенные списки доступа ACL и команду setfacl добавить пользователю wwwrun права на эти каталоги. Создать файл upload.php, который выполняет загрузку файла в каталог dir_upload и выводит изображение загружаемого файла.
3 Добавить в файл upload.php список возможных фильтров (не менее трех). Варианты фильтрации выбрать самостоятельно, использую библиотеку GD (аналогично заданию gray cat). Список фильтров возможно реализовать в виде набора ссылок на файл filter.php, передавая в файл параметр, соответствующий выбранному фильтру. Например так: <a href="./filter.php?type=1">Черно-белое изображение</a>.
4 Создать файл filter.php, который принимает переданный GET-параметр type и, в зависимости от его значения, выполняет обработку изображения, выводит новое изображение на экран и в файл в директорию dir_filtered. Имя файла для отфильтрованного изображения должно содержать номер фильтра, например, filter_1.jpg - если был выбран первый фильтр, filter_2.jpg - если был выбран второй и т. д. (см. примеры из задания 4)