Задания по курсу РНР.
1. Написать парсер лога веб-сервера Apache, выдающего статистику за определенный день в форме отчета. Информация должна быть представлена следующая: количество обращений к страницам, количество запросов в час, количество запросов по IP адресам.
Образец лога доступен по адресу
http://swsoft.nsu.ru/~fat/apache.log.1
2. Написать программу угадывания числа, в которой задаются границы заданного числа и количество попыток. Программа должна отобразить: границы заданного числа, оставшееся число попыток и результат сравнения введенного числа с загаданным: больше, меньше или равно.
3. Реализовать интерфейс к базе данных при помощи класса, выполняющего следующие действия: соединение с базой данных, закрытие соединения, выполнение прямого SQL запроса, получение данных разного вида извлеченных SQL запросом.
4. Реализовать интерфейс к базе данных при помощи класса, который должен являться базовым или инкапсулировать объект некоторого базового класса. Базовый класс содержит набор свойств, заданных определенным образом, и описывающий название таблицы и полей. Данный базовый класс должен уметь генерировать запросы INSERT, SELECT, UPDATE по свойствам таблицы, описанных в классе наследнике.
5. Реализовать механизм безопасной загрузки файлов на сервер. Программа должна уметь загружать файл, отображать список загруженных файлов и скачивать файл.
6. Написать 2 версии формы авторизации в систему. Первая демонстрирует возможность и принцип работы SQL-injection, вторая безопасная в плане SQL injection.
7. Написать программу, состоящую из 3х страниц: 1 – авторизация, 2 – изображение и список координат щелчков мышью по изображению, 3 – выход из системы. 2ая страница не должна быть показана неавторизованным пользователям. Информация о координатах щелчков мышью должны храниться в cookie или в сессии. Дополнительно можно реализовать регистрацию пользователей в систему.
8. Написать класс измеряющий производительность той или иной части кода. Например, провести сравнение скорости работы циклов foreach, for, while; обращение к неопределенной переменной и ее использование и проверку на существование переменной и т.п.
9. Написать простейший веб-сервис, обладающий следующей функциональностью:
• Запрос может быть по методу GET или POST
• Запрос должен содержать логин/пароль пользователя в базе
• Возвращаемый результат – XML одного из трех видов: неверный логин/пароль, отсутствие пользователя в базе, информация о пользователе.
• Дополнительно – реализация добавления пользователя в базу.
10. Написать файловый менеджер. Реализовать функции создания/переименования/удаления директорий/файлов, изменений прав доступа, работа с ftp.
11. Написать программу, которая распечатывает текст программы с подсветкой синтаксиса.