| Разработка приложений для 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)
|
|