RUSSIAN

РНР и MySQL. 25 уроков для начинающих.

Book information

Publisher
БХВ-Петербург
Year
2021
ISBN
9785977566513
Language
russian
Format
PDF
Filesize
31 MB (32169893 bytes)
Pages
\434
Time added
2021-11-08 14:38:30

Description

В книге 25 иллюстрированных уроков и более 30 практических упражнений. В доступной и наглядной форме, на сквозном примере рассказано о программиро­ вании динамических веб-сайтов на языке РНР с применением СУБД MySQL и MariaDB. Описывается программное генерирование веб-страниц, получение дан­ ных от пользователей и проверка их на корректность, работа с файлами, про­ граммное рисование графики, обработка cookie и сессий, отправка электронной почты. Рассмотрена архитектура,«модель-шаблон-контроллер» и структурирование кода для дальнейшего сопровождения сайта. Рассказано о мерах защиты сайта: разграничение доступа, перевод на безопасный протокол HTTPS, защита от атак, шифрование данных. Дан краткий курс программирования веб-служб REST. Сквозной пример разработки веб-сайта фотогалереи и РНР-фреймворка помо­ жет при построении собственных сайтов. Электронное приложение-архив на сайте издательства содержит коды всех примеров. Введение Динамические веб-сайты Почему MySQL и РНР? Чему научит эта книга? Что вам понадобится? Типографские соглашения ЧАСТЬ I. ЯЗЫК РНР Урок 1. Основы РНР 1.1. Экспресс-курс РНР-программирования 1.1.1. Программа. Выражения 1.1.2. Числа, переменные, операторы, функции, строки, типы данных и вывод результатов 1.1.3. Написание РНР-приложений. Наше первое серверное веб-приложение Упражнение 1.1 Сделайте сами 1.1.4. Массивы, циклы, условия и логические величины Упражнение 1.2 Сделайте сами 1.1.5. Получение данных от пользователя и условные выражения Упражнение 1.3 Сделайте сами 1.1.6. Программные модули и включения Упражнение 1.4 1.2. Ошибки в РНР-коде 1.3. Комментарии 1.4. Способы набора РНР-кода 1.5. Консоль РНР Урок 2. Работа с данными разных типов 2.1. Числа: целые и вещественные 2.1.1. Запись чисел 2.1.2. Действия над числами Арифметические действия Алгебраические действия Тригонометрические функции Побитовые операции Прочие операции 2.2. Строки 2.2.1. Запись строк 2.2.2. Обработка переменных в строках 2.2.3. Действия над строками Конкатенация и вычисление длин строк Поиск и извлечение подстрок в строках Преобразование строк «Быстрая» обработка строк в кодировке ASCII 2.3. Логические величины и написание условий 2.3.1. Операторы сравнения 2.3.2. Логические операторы 2.4. Временные отметки 2.4.1. Создание временных отметок 2.4.2. Получение компонентов даты и времени из временной отметки 2.5. Значение NULL 2.6. Типы данных 2.6.1. Определение типа значения 2.6.2. Преобразование типов Неявное преобразование типов Явное преобразование типов 2.6.3. Строгое сравнение 2.7. Вычисление выражений, записанных в строках 2.8. Упражнение. Доработка веб-приложения convertor3.php Сделайте сами Урок 3. Хранение данных: переменные, ссылки и константы 3.1. Переменные и работа с ними 3.1.1. Имена переменных 3.1.2. Область видимости переменной 3.1.3. Присваивание Простое присваивание Комбинированное присваивание Копирование значения при присваивании. Значащие типы данных 3.1.4. Переменные переменных 3.1.5. Проверка и удаление переменных 3.2. Ссылки 3.3. Константы Урок 4. Массивы 4.1. Индексированные массивы 4.1.1. Создание массивов 4.1.2. Работа с элементами массивов 4.2. Ассоциативные массивы 4.3. Комбинированные массивы 4.4. Вложенные массивы 4.5. Работа с массивами 4.6. Упражнение. Вывод описаний к изображениям в фотогалерее 4.7. Упражнение. Веб-страница для просмотра изображений Сделайте сами Урок 5. Управляющие конструкции 5.1. Условные выражения и операторы 5.1.1. Простое условное выражение 5.1.2. Множественное условное выражение 5.1.3. Условные операторы 5.2. Блоки 5.3. Выражения выбора. Прерывание 5.4. Циклы 5.4.1. Цикл со счетчиком 5.4.2. Цикл с предусловием 5.4.3. Цикл с постусловием 5.4.4. Цикл по массиву 5.4.5. Прерывание цикла 5.4.6. Прерывание текущей итерации цикла 5.5. Безусловный переход 5.6. Завершение работы модуля 5.7. Упражнение. Заставляем приложение convertorS.php соблюдать правила русского языка Сделайте сами 5.8. Упражнение. Реализуем единую точку входа на веб-сайт 5.8.1. Теоретическое обоснование 5.8.2. Собственно упражнение Урок 6. Функции 6.1. Объявление и вызов функций 6.1.1. Область видимости функций 6.1.2. Локальные, глобальные и статические переменные 6.1.3. Указание типов для параметров и возвращаемого результата 6.2. Параметры функций: особые случаи 6.2.1. Необязательные параметры 6.2.2. Функции с произвольным количеством параметров 6.2.3. Параметры с изменяемыми значениями. Передача по ссылке 6.3. Переменные функций 6.4. Анонимные функции 6.5. Рекурсия 6.6. Упражнение. Объявляем функцию, определяющую падежное окончание по числу Сделайте сами Урок 7. Объектное программирование: классы и объекты 7.1. Введение в объектное программирование 7.2. Объявление классов 7.2.1. Объявление свойств и методов 7.2.2. Конструкторы и деструкторы 7.2.3. Статические свойства и методы 7.2.4. Константы классов 7.3. Наследование классов 7.3.1. Перекрытие и переопределение методов 7.3.2. Решение проблем с наследованием статических методов 7.3.3. Абстрактные методы и классы 7.3.4. Окончательные методы и классы 7.4. Присваивание объектов. Ссылочные типы данных 7.5. Работа с объектами и классами 7.5.1. Работа с объектами 7.5.2. Работа с классами 7.6. Магические методы 7.7. Автозагрузка классов Урок 8. Объектное программирование: трейты, интерфейсы и пространства имен 8.1. Трейты 8.1.1. Объявление и использование трейтов 8.1.2. Разрешение конфликтов Простые случаи: автоматическое разрешение конфликтов Сложные случаи: разрешение конфликтов вручную 8.1.3. Дополнительные инструменты для работы с трейтами 8.2. Интерфейсы 8.2.1. Объявление и реализация интерфейсов 8.2.2. Наследование интерфейсов 8.2.3. Дополнительные инструменты для работы с интерфейсами 8.3. Пространства имен 8.3.1. Объявление пространств имен 8.3.2. Обращение к сущностям, объявленным в других пространствах имен Прямое обращение по пути Выполнение импорта 8.3.3. Дополнительные инструменты для работы с пространствами имен Урок 9. Архитектура «модель-шаблон-контроллер» 9.1. Введение в архитектуру «модель-шаблон-контроллер» 9.2. Упражнение. Пишем класс модели и реализуем автозагрузку классов Сделайте сами 9.3. Упражнение. Пишем контроллер 9.4. Упражнение. Создаем шаблоны Урок 10. Генераторы и итераторы 10.1. Генераторы 10.2. Итераторы 10.2.1. Интерфейс Iterator 10.2.2. Интерфейс Countable 10.3. Упражнение. Превращаем модель в итерируемый класс Урок 11. Регулярные выражения 11.1. Введение в регулярные выражения 11.1.1. Написание регулярных выражений 11.1.2. Поиск с применением регулярных выражений 11.1.3. Тестирование регулярных выражений 11.2. Литералы регулярных выражений 11.2.1. Разделители 11.2.2. Метасимволы 11.2.3. Поднаборы 11.2.4. Вариант 11.2.5. Квантификаторы 11.2.6. Подквантификатор. «Жадный» и «щедрый» режимы поиска 11.2.7. Группы и обратные ссылки 11.2.8. Обычные символы 11.3. Поиск и обработка фрагментов, совпадающих с регулярными выражениями 11.3.1. Обычный режим поиска 11.3.2. Глобальный поиск 11.3.3. Многострочный поиск 11.3.4. Замена совпавших фрагментов 11.3.5. Разбиение строк 11.4. Упражнение. Пишем маршрутизатор на основе регулярных выражений Урок 12. Обработка ошибок. Исключения 12.1. Обработчики исключений 12.2. Классы исключений 12.3. Генерирование исключений 12.4. Обработчик исключений по умолчанию 12.5. Упражнение. Создаем веб-страницы с сообщениями об ошибках ЧАСТЬ II. СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ MYSQL Урок 13. Базы данных 13.1. Введение в реляционные базы данных 13.1.1. Таблицы, поля и записи 13.1.2. Индексы 13.1.3. Связи 13.1.4. Разграничение доступа 13.1.5. Серверные СУБД 13.2. Серверные СУБД MySQL и MariaDB 13.3. Программа для работы с базами данных phpMyAdmin 13.3.1. Открытие phpMyAdmin и выполнение входа 13.3.2. Навигация в phpMyAdmin 13.3.3. Работа с базой данных Создание базы данных Переименование базы данных Изменение кодировки у базы данных Удаление базы данных 13.3.4. Работа с таблицами Создание таблицы Переименование таблицы Удаление таблицы 13.3.5. Работа с полями Добавление поля в таблицу Правка поля Удаление поля 13.3.6. Работа с индексами Добавление индекса в таблицу Правка индекса Удаление индекса 13.3.7. Работа со связями Создание связи Правка связи Удаление связи 13.3.8. Работа с пользователями Создание пользователя Правка привилегий пользователя Изменение пароля пользователя Правка основных сведений о пользователе Удаление пользователя 13.3.9. Работа с записями Добавление записей Правка записей Удаление записей 13.3.10. Экспорт и импорт баз данных Экспорт базы данных Импорт базы данных 13.4. Упражнение. Создаем базу данных для веб-сайта фотогалереи Урок 14. Написание запросов к базам данных. Язык SQL 14.1. Выполнение SQL-запросов в phpMyAdmin 14.2. Выборка записей 14.2.1. Простая выборка записей 14.2.2. Связывание таблиц и выборка полей из связанных записей 14.2.3. Фильтрация записей 14.2.4. Сортировка записей 14.2.5. Выборка заданного количества записей 14.3. Вычисления над группами записей 14.3.1. Агрегатные функции 14.3.2. Группировка записей 14.3.3. Фильтрация групп 14.4. Вложенные запросы 14.5. Добавление, правка и удаление записей 14.5.1. Добавление записей 14.5.2. Правка записей 14.5.3. Удаление записей Урок 15. Выполнение запросов к базам данных MySQL средствами РНР 15.1. Соединение с базой данных 15.2. Выполнение простых запросов 15.2.1. Простые запросы на выборку записей 15.2.2. Простые запросы на изменение данных 15.3. Параметризованные запросы 15.3.1. Подготовка параметризованного запроса 15.3.2. Задание значений параметров в параметризованном запросе 15.3.3. Выполнение запроса 15.3.4. Получение результатов 15.4. Дополнительные инструменты 15.5. Обработка ошибок при работе с базами данных 15.6. Упражнение. Пишем базовый класс модели, работающей с базой данных 15.7. Упражнение. Создаем главную веб-страницу и веб-страницу категории Сделайте сами 15.8. Упражнение. Реализуем пагинацию 15.9. Упражнение. Реализуем фильтрацию изображений Сделайте сами ЧАСТЬ III. ПРАКТИЧЕСКОЕ РНР-ПРОГРАММИРОВАНИЕ Урок 16. Обработка клиентских запросов, генерирование ответов и включение модулей 16.1. Средства для обработки клиентских запросов 16.1.1. Получение данных, отправленных из веб-форм 16.1.2. Получение сведений о клиентском запросе и веб-сервере 16.2. Вывод данных 16.2.1. Простой вывод данных 16.2.2. Форматированный вывод данных Форматированный вывод строк и чисел Форматированный вывод временных отметок 16.2.3. Преобразование текста к виду, пригодному для вставки в HTML-код 16.3. Упражнение. Форматируем временные отметки Сделайте сами 16.4. Задание заголовков и состояния ответа 16.4.1. Перенаправление 16.5. Упражнение. Задаем состояния ответа у веб-страниц сообщений об ошибках 404 и 503 Сделайте сами 16.6. Включение модулей Урок 17. Обработка данных, введенных в веб-формы 17.1. Элементы управления HTML и отправляемые ими данные 17.2. Валидация и нормализация данных 17.2.1. Валидация данных 17.2.2. Нормализация данных 17.3. Упражнение. Реализуем в базовом классе модели добавление, правку и удаление записей 17.4. Упражнение. Создаем базовый класс формы 17.5. Упражнение. Реализуем добавление комментариев 17.6. Упражнение. Реализуем правку и удаление комментариев Сделайте сами Урок 18. Работа с файлами и папками 18.1. Получение сведений о текущем программном модуле 18.2. Работа с файлами 18.2.1. Получение сведений о файле 18.2.2. Манипуляции с файлами 18.2.3. Чтение и запись 18.3. Работа с папками 18.3.1. Получение сведений о папке 18.3.2. Манипуляции с папками 18.4. Получение сведений о дисках 18.5. Сохранение файлов, отправленных из веб-формы 18.6. Упражнение. Реализуем добавление, правку и удаление изображений Сделайте сами Урок 19. Работа с графикой 19.1. Создание и открытие изображений 19.1.1. Создание нового изображения 19.1.2. Открытие существующего изображения 19.2. Рисование фигур 19.2.1. Создание цветов для фигур 19.2.2. Рисование точек 19.2.3. Рисование линий 19.2.4. Рисование прямоугольников 19.2.5. Рисование эллипсов 19.2.6. Рисование полигонов 19.2.7. Рисование кривых 19.2.8. Закраска областей изображения 19.2.9. Задание толщины и стиля линий 19.2.10. Вывод текста 19.3. Изменение размеров и копирование изображений 19.3.1. Изменение размеров изображения 19.3.2. Копирование одного изображения в другое 19.4. Сохранение изображения 19.5. Удаление изображения 19.6. Получение сведений об изображении 19.7. Упражнение. Реализуем создание и вывод миниатюр Урок 20. Cookie и сессии 20.1. Cookie 20.1.1. Запись данных в cookie 20.1.2. Получение данных, сохраненных в cookie 20.2. Сессии 20.2.1. Запуск, проверка состояния и использование сессии 20.2.2. Удаление сессии и сохраненных в ней данных Урок 21. Базовые средства безопасности. Разграничение доступа 21.1. Реализация разграничения доступа 21.2. Безопасное хранение паролей. Хэши 21.3. Упражнение. Реализуем вход и выход 21.4. Упражнение. Защищаем веб-сайт 21.5. Упражнение. Создаем веб-страницу регистрации 21.6. Упражнение. Реализуем правку и удаление пользователей Сделайте сами Урок 22. Отправка электронной почты 22.1. Класс SendMailSmtpClass 22.2. Упражнение. Реализуем отправку оповещений о новых комментариях Урок 23. Усиленные меры безопасности 23.1. Перевод веб-сайта на протокол HTTPS 23.2. Защита от атак типа CSRF 23.3. Упражнение. Противодействуем атакам CSRF 23.4. Двухэтапная регистрация пользователей 23.5. Упражнение. Делаем двухэтапную регистрацию Урок 24. Веб-службы REST 24.1. Формат JSON и его поддержка в РНР 24.2. Стиль REST 24.2.1. Решение проблемы с передачей данных HTTP-методами PUT, РАТСН и DELETE. Подмена НТТР-метода 24.3. Программирование фронтенда 24.3.1. Получение данных 24.3.2. Добавление фрагмента данных 24.3.3. Правка фрагмента данных 24.3.4. Удаление фрагмента данных 24.3.5. Реализация разграничения доступа 24.4. Упражнение. Пишем бэкенд Урок 25. Настройки РНР 25.1. Включение и отключение расширений РНР 25.2. Настройки отправки файлов на сервер 25.3. Настройки сессий 25.4. Настройки вывода сообщений об ошибках 25.5. Настройки ограничения ресурсов Заключение ПРИЛОЖЕНИЯ Приложение 1. Приоритет операторов Приложение 2. Пакет хостинга ХАМРР П2.1. Установка пакета ХАМРР П2.2. Панель управления ХАМРР. Запуск и остановка веб-сервера и СУБД П2.2.1. Указание языка при первом запуске П2.2.2. Окно панели управления ХАМРР П2.2.3. Запуск веб-сервера и СУБД П2.2.4. Проверка работоспособности веб-сервера и СУБД П2.2.5. Остановка веб-сервера и СУБД П2.3. Использование веб-сервера П2.3.1. Тестирование веб-сайта с применением ХАМРР П2.3.2. Просмотр журналов работы веб-сервера и РНР П2.4. Настройка РНР и решение проблем П2.4.1. Настройка РНР П2.4.2. Отключение кэширования файлов веб-обозревателем Приложение 3. Описание электронного архива Предметный указатель

Similar books