Николай Прохоренок. Разработка Web-сайтов с помощью Perl и MySQL

Разработка Web-сайтов с помощью Perl и MySQL

На практических примерах описана разработка динамических Web-сайтов с помощью Perl и MySQL. Рассмотрены основные конструкции языка Perl, даны приемы написания сценариев, наиболее часто используемых при разработке Web-сайтов. Уделено внимание способам работы с базами данных посредством Perl, а также вопросам администрирования баз с помощью программы phpMyAdmin. Показано, как обрабатывать данные формы, отправлять письма с сайта, загружать файлы на сервер с помощью формы, создавать личный кабинет для пользователей, гостевую книгу, форум и др.

Оглавление книги Разработка Web-сайтов с помощью Perl и MySQL

Введение

Глава 1. Установка программного обеспечения под Windows

1.1. Знакомьтесь — Денвер
    1.1.1. Установка Денвера
    1.1.2. Установка пакетов расширений
    1.1.3. Установка модулей
    1.1.4. Запуск и остановка Денвера
    1.1.5. Создание виртуальных хостов
    1.1.6. Конфигурационные файлы Денвера
1.2. Установка ActivePerl

Глава 2. Основы Perl

2.1. Основные понятия
    2.1.1. Первая программа на Perl
    2.1.2. Структура программы
    2.1.3. Комментарии в Perl-сценариях
    2.1.4. Вывод результатов работы скрипта
    2.1.5. Завершение выполнения скрипта
    2.1.6. Засыпание сценария
    2.1.7. Специальные символы
2.2. Переменные
    2.2.1. Типы данных и инициализация переменных
    2.2.2. Проверка существования переменной
    2.2.3. Преобразование типов данных
    2.2.4. Удаление значения переменной
    2.2.5. Создание и использование констант
    2.2.6. Специальные литералы
2.3. Операторы Perl
    2.3.1. Математические операторы
    2.3.2. Операторы присваивания
    2.3.3. Операторы обработки строк. Запуск внешних программ
    2.3.4. Приоритет выполнения операторов
2.4. Массивы и хеши
    2.4.1. Инициализация массива
    2.4.2. Получение и изменение элементов массива. Определение последнего индекса массива
    2.4.3. Добавление и удаление элементов массива
    2.4.4. Переворачивание массива
    2.4.5. Сортировка массива. Создание пользовательской сортировки
    2.4.6. Перебор элементов массива
    2.4.7. Заполнение массива числами
    2.4.8. Преобразование массива в строку
    2.4.9. Удаление оконечных пробельных символов
    2.4.10. Функции grep() и map()
    2.4.11. Хеши
2.5. Строки
    2.5.1. Операторы q и qq
    2.5.2. Функции для работы со строками
    2.5.3. Настройка локали
    2.5.4. Функции для работы с символами
    2.5.5. Поиск в строке
    2.5.6. Оператор трансляции tr///
    2.5.7. Кодирование строки
    2.5.8. Регулярные выражения
    2.5.9. Выполнение команд, содержащихся в строке
2.6. Функции для работы с числами
2.7. Функции для работы с датой и временем
2.8. Условные операторы
    2.8.1. Операторы сравнения
    2.8.2. Оператор ветвления if...else
    2.8.3. Оператор unless
    2.8.4. Оператор ?
2.9. Операторы циклов
    2.9.1. Цикл for
    2.9.2. Циклы while и until
    2.9.3. Циклы do...while и do...until
    2.9.4. Цикл foreach
    2.9.5. Оператор next
    2.9.6. Оператор last
    2.9.7. Оператор redo
    2.9.8. Блоки
    2.9.9. Оператор goto
2.10. Функции. Разделяем программу на фрагменты
    2.10.1. Расположение функций
    2.10.2. Рекурсия. Вычисляем факториал
    2.10.3. Глобальные, лексические и динамические переменные
    2.10.4. Передача параметра по ссылке
    2.10.5. Переменное число параметров в функции
    2.10.6. Функция wantarray()
2.11. Ссылки и сложные структуры данных
    2.11.1. Символические ссылки
    2.11.2. Жесткие ссылки
    2.11.3. Ссылки на массивы
    2.11.4. Ссылки на ассоциативные массивы
    2.11.5. Ссылки на функции
    2.11.6. Многомерные массивы
    2.11.7. Многомерные хеши
    2.11.8. Массивы хешей
    2.11.9. Хеши массивов
    2.11.10. Хеши функций
    2.11.11. Сложные структуры данных
    2.11.12. Тип данных typeglob
2.12. Пакеты и модули
    2.12.1. Создание пакета
    2.12.2. Выносим пакет в отдельный файл. Создаем шаблоны для множества страниц
    2.12.3. Оператор use
    2.12.4. Экспортирование идентификаторов из модуля
2.13. Объектно-ориентированное программирование
    2.13.1. Создание класса
    2.13.2. Наследование
    2.13.3. Создание шаблона сайта при помощи класса
2.14. Ошибки в программе
    2.14.1. Синтаксические ошибки
    2.14.2. Логические ошибки
    2.14.3. Ошибки времени выполнения
    2.14.4. Вывод сообщений об ошибках
    2.14.5. Инструкция or die()
    2.14.6. Прагмы strict и warnings

Глава 3. Web-программирование на Perl

3.1. Переменные окружения
    3.1.1. Ассоциативный массив %ENV
    3.1.2. Часто используемые переменные окружения
3.2. Заголовки HTTP
    3.2.1. Перенаправление клиента на другой URL-адрес. Запрет кэширования страниц
    3.2.2. Работа с сookies. Создаем индивидуальный счетчик посещений
3.3. Обработка данных формы
    3.3.1. Метод GET
    3.3.2. Метод POST
    3.3.3. Использование модуля CGI
    3.3.4. Текстовое поле, поле ввода пароля и скрытое поле
    3.3.5. Поле для ввода многострочного текста
    3.3.6. Список с возможными значениями
    3.3.7. Флажок
    3.3.8. Элемент-переключатель
    3.3.9. Кнопка Submit
3.4. Работа с файлами и каталогами
    3.4.1. Функции для работы с файлами
    3.4.2. Перемещение внутри файла
    3.4.3. Права доступа в операционной системе UNIX
    3.4.4. Файловые проверки
    3.4.5. Функции для манипулирования файлами
    3.4.6. Загрузка файлов на сервер
    3.4.7. Функции для работы с каталогами
3.5. Получение информации из Интернета
    3.5.1. Модуль LWP::Simple
    3.5.2. Класс HTTP::Request
    3.5.3. Класс HTTP::Response
    3.5.4. Класс LWP::UserAgent
    3.5.5. Класс LWP::RobotUA
    3.5.6. Метод HEAD
    3.5.7. Метод GET
    3.5.8. Метод POST
    3.5.9. Разбор URL-адреса
    3.5.10. Преобразование относительной ссылки в абсолютную
    3.5.11. Кодирование и декодирование URL-адреса
    3.5.12. Разбор HTML-эквивалентов
    3.5.13. Преобразование кодировок
    3.5.14. Модуль HTML::LinkExtor
    3.5.15. Модуль HTML::TokeParser
3.6. Отправка писем с сайта
3.7. Создание изображений с помощью модуля GD
    3.7.1. Получение информации об изображении
    3.7.2. Создание холста
    3.7.3. Вывод созданного изображения
    3.7.4. Работа с цветом
    3.7.5. Рисование линий и фигур
    3.7.6. Рисование многоугольников
    3.7.7. Вывод текста в изображение. Создаем счетчик посещений
    3.7.8. Преобразование изображений
3.8. Работа с базами данных MySQL и Access
    3.8.1. Установка соединения
    3.8.2. Выполнение запроса к базе данных
    3.8.3. Обработка результата запроса
    3.8.4. Использование заполнителей
    3.8.5. Особенности доступа к базе данных Access
3.9. Аутентификация с помощью Perl. Создание Личного кабинета
    3.9.1. Сохранение данных сессии в файле
    3.9.2. Удаление просроченных файлов
    3.9.3. Сохранение данных сессии в базе данных MySQL

Глава 4. Основы MySQL

4.1. Создание базы данных
4.2. Типы данных полей
    4.2.1. Числовые типы
    4.2.2. Строковые типы
    4.2.3. Дата и время
4.3. Основы языка SQL
    4.3.1. Создание базы данных
    4.3.2. Создание пользователя базы данных
    4.3.3. Создание таблицы
    4.3.4. Вставка данных в таблицу
    4.3.5. Обновление записей
    4.3.6. Удаление записей из таблицы
    4.3.7. Изменение свойств таблицы
    4.3.8. Выбор записей
    4.3.9. Удаление таблицы и базы данных
4.4. Операторы MySQL
    4.4.1. Математические операторы
    4.4.2. Двоичные операторы
    4.4.3. Операторы сравнения
    4.4.4. Приоритет выполнения операторов
    4.4.5. Преобразование типов данных
4.5. Поиск по шаблону
4.6. Поиск с помощью регулярных выражений
4.7. Режим полнотекстового поиска
    4.7.1. Создание индекса FULLTEXT
    4.7.2. Реализация полнотекстового поиска
    4.7.3. Режим логического поиска
    4.7.4. Поиск с расширением запроса
4.8. Функции MySQL
    4.8.1. Функции для работы с числами
    4.8.2. Функции даты и времени
    4.8.3. Функции для обработки строк
    4.8.4. Функции для шифрования строк
    4.8.5. Информационные функции
    4.8.6. Прочие функции
4.9. Переменные SQL
4.10. Временные таблицы
4.11. Вложенные запросы
    4.11.1. Заполнение таблицы с помощью вложенного запроса
    4.11.2. Применение вложенных запросов в инструкции WHERE
4.12. Внешние ключи

Глава 5. Сплошная практика

5.1. Структура будущего сайта
5.2. Создание шаблона сайта
5.3. Создание верхнего колонтитула
    5.3.1. Вывод верхнего колонтитула
    5.3.2. Создание таблицы стилей
    5.3.3. Вывод логотипа и рекламного баннера
    5.3.4. Вывод панели навигации
    5.3.5. Вывод таблицы-разделителя
    5.3.6. Вывод поисковой формы
5.4. Создание элементов основной части страницы
5.5. Создание нижнего колонтитула
    5.5.1. Вывод нижнего колонтитула для пользователей
    5.5.2. Вывод нижнего колонтитула для администратора
5.6. Структура файла конфигурации
5.7. Создание SQL-запросов для таблиц
5.8. Вывод оглавления с количеством в каждом разделе
5.9. Вывод каталога по параметрам
5.10. Организация поиска по каталогу
5.11. Создание гостевой книги
5.12. Создание формы обратной связи
5.13. Создание страниц регистрации ошибок
5.14. Создание Личного кабинета для пользователей при помощи Perl
    5.14.1. Создание страницы для входа в Личный кабинет
    5.14.2. Добавление новых сайтов в базу
5.15. Администраторская часть сайта
    5.15.1. Добавление, изменение и удаление рубрик
    5.15.2. Вывод сайтов, требующих проверки
    5.15.3. Редактирование описания произвольного сайта
    5.15.4. Администрирование гостевой книги
    5.15.5. Создание страницы статистики

Глава 6. Публикация сайта

6.1. Выбор тарифного плана
6.2. Регистрация аккаунта
6.3. Регистрация доменного имени
6.4. Структура панели управления
6.5. Структура каталогов сервера и загрузка контента на сервер
    6.5.1. Использование программы CuteFTP 8
    6.5.2. Использование программы AceFTP 2
    6.5.3. Использование программы FAR manager
6.6. Настройка Web-сервера Apache с помощью файла .htaccess
6.7. Файл favicon.ico
6.8. Файл robots.txt
6.9. Защита содержимого папки
6.10. Создание базы данных MySQL
6.11. Управление базой данных при помощи phpMyAdmin
6.12. Доступ к базе данных с помощью Perl

Заключение