стр. 1 (С) Павлий В.А., кафедра КСМ, ДонНТУ, 2014 Лабораторная работа №4 “Работа с изображениями в PHP” Цель работы: научиться использовать библиотеку gd2 в PHP для генерации динамических изображений. Теоретическая часть В разработке… Задание к лабораторной работе Задание к лабораторной работе состоит из двух частей: 1) Разработать скрипт для генерации изображения проверочного кода для защиты от автоматической регистрации или авторизации (captcha) в соответствии с вариантом задания. Проверочный код должен генерироваться случайно; при перезапуске скрипта положение, цвет и угол наклона отдельных символов или слов должно изменяться случайным образом в небольших пределах, не нарушающих общую форму и идею построения проверочного кода, указанную в варианте задания. К примеру, если проверочный код в варианте задания выводится красными буквами, допускается использовать случайные цвета от бардового цвета до оранжевого цвета, но не синий цвет. Расположение случайных линий, отрезков, окружностей, их радиусов, интенсивность шума и другие характеристики подбираются таким образом, чтобы по возможности проверочный код не слишком сильно отличался от показанного в варианте задания. При формировании проверочного кода учесть, что в некоторых шрифтах буквы O, I визуально выглядят как цифры 0 и 1. В этом случае, если пользователь вводит вместо буквы цифру, такой ввод не должен считаться некорректным. Размеры генерируемого изображения выбираются самостоятельно, но не менее 30x100 пикселей. Скрипт должен сохранять проверочный код в сессии для последующей проверки корректности ввода; 2) Внедрить проверочный код на страницы регистрации и авторизации, выполненные в рамках предыдущей лабораторной работы. В случае успешного ввода регистрация или авторизация должна проходить, если же пользователь ввел код неверно – должно формироваться сообщение об ошибке. Содержание отчета: - титульный лист; - программный код для всех разработанных и переработанных скриптов; - экранные формы с результатами работы с выводимыми сообщениями об ошибках. стр. 2 (С) Павлий В.А., кафедра КСМ, ДонНТУ, 2014 Варианты заданий Варианты с 1 по 15 в качестве основы для генерации проверочного кода используют изображения, представленные в таблице ниже. Варианты с 16 по 30 используют те же изображения (N-15, где N – номер варианта), но с определенными модификациями: - все текстовые и цифровые проверочные коды должны вводиться пользователем справа налево (вместо привычного порядка). Сообщение об этом должно выводиться справа от проверочного кода – варианты №16, 17, 18, 20, 21, 22, 25, 26, 27, 28, 30; - для остальных проверочных кодов отличия вариантов описаны в таблице № Внешний вид проверочного кода Ответ варианта 1 / 16 2 / 17 3192 Здесь символы и расстояния между ними пропорционально уменьшаются к концу 3 / 18 4 / 19 wgcxnk В варианте 4 используются только операции плюс и минус, в варианте 19 – умножение 5 / 20 6 / 21 8 5503 Здесь фон может быть любым из основных цветов и количество цифр, подсвеченных фоном – тоже. 7 / 22 8 / 23 4zA9yk 5 canvas Здесь для варианта 8 требуется вводить количество прямоугольников определенного цвета. Цвет прямоугольника может быть любой из основных цветов. Прямоугольники могут пересекаться, но один прямоугольник не должен полностью лежать внутри другого. В варианте 23 требуется вводить количество “лежачих” прямоугольников (т.е. прямоугольников, высота которых минимум вдвое меньше ширины) 2 стр. 3 9 / 24 (С) Павлий В.А., кафедра КСМ, ДонНТУ, 2014 Здесь требуется определить количество овалов определенного цвета. Цвет овала может быть любой из основных цветов. Овалы могут пересекаться, но один овал не должен полностью лежать внутри другого. Вариант 9 использует операции плюс и минус, вариант 24 – умножение 4 10 / 25 M8K6O 11 / 26 z5g2 12 / 27 Здесь требуется вводить только те буквы, над которыми имеется горизонтальная полоска. 13 / 28 14 / 29 qAQSDS 4b20 Здесь требуется вводить символы по часовой стрелке (вариант 14) и против часовой (вариант 29) стрелки. Начинать с линии, которая исходит из центра круга. Символы должны быть расположены по кругу с небольшими случайными отклонениями, чтобы форма круга сохранялась 15 / 30 AuMTd 79518 Здесь все цифры строятся из символов #, *, $, @, выбираемых случайным образом