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

Оглавление⌄
Введение....14 Динамические веб-сайты....14 Почему MySQL и РНР?....15 Чему научит эта книга?....15 Что вам понадобится?....16 Типографские соглашения....17 ЧАСТЬ I. ЯЗЫК РНР....20 Урок 1. Основы РНР....22 1.1. Экспресс-курс РНР-программирования....22 1.1.1. Программа. Выражения....22 1.1.2. Числа, переменные, операторы, функции, строки, типы данных и вывод результатов....23 1.1.3. Написание РНР-приложений. Наше первое серверное веб-приложение....26 Упражнение 1.1....27 Сделайте сами....29 1.1.4. Массивы, циклы, условия и логические величины....30 Упражнение 1.2....32 Сделайте сами....34 1.1.5. Получение данных от пользователя и условные выражения....35 Упражнение 1.3....36 Сделайте сами....38 1.1.6. Программные модули и включения....38 Упражнение 1.4....39 1.2. Ошибки в РНР-коде....41 1.3. Комментарии....42 1.4. Способы набора РНР-кода....43 1.5. Консоль РНР....44 Урок 2. Работа с данными разных типов....45 2.1. Числа: целые и вещественные....45 2.1.1. Запись чисел....45 2.1.2. Действия над числами....45 Арифметические действия....45 Алгебраические действия....47 Тригонометрические функции....48 Побитовые операции....49 Прочие операции....49 2.2. Строки....50 2.2.1. Запись строк....51 2.2.2. Обработка переменных в строках....52 2.2.3. Действия над строками....53 Конкатенация и вычисление длин строк....53 Поиск и извлечение подстрок в строках....53 Преобразование строк....54 Быстрая обработка строк в кодировке ASCII....55 2.3. Логические величины и написание условий....56 2.3.1. Операторы сравнения....56 2.3.2. Логические операторы....57 2.4. Временные отметки....58 2.4.1. Создание временных отметок....58 2.4.2. Получение компонентов даты и времени из временной отметки....59 2.5. Значение NULL....59 2.6. Типы данных....60 2.6.1. Определение типа значения....60 2.6.2. Преобразование типов....61 Неявное преобразование типов....61 Явное преобразование типов....63 2.6.3. Строгое сравнение....64 2.7. Вычисление выражений, записанных в строках....65 2.8. Упражнение. Доработка веб-приложения convertor3.php....65 Сделайте сами....66 Урок 3. Хранение данных: переменные, ссылки и константы....67 3.1. Переменные и работа с ними....67 3.1.1. Имена переменных....67 3.1.2. Область видимости переменной....68 3.1.3. Присваивание....69 Простое присваивание....69 Комбинированное присваивание....69 Копирование значения при присваивании. Значащие типы данных....70 3.1.4. Переменные переменных....70 3.1.5. Проверка и удаление переменных....71 3.2. Ссылки....72 3.3. Константы....72 Урок 4. Массивы....74 4.1. Индексированные массивы....74 4.1.1. Создание массивов....74 4.1.2. Работа с элементами массивов....75 4.2. Ассоциативные массивы....76 4.3. Комбинированные массивы....77 4.4. Вложенные массивы....77 4.5. Работа с массивами....78 4.6. Упражнение. Вывод описаний к изображениям в фотогалерее....81 4.7. Упражнение. Веб-страница для просмотра изображений....82 Сделайте сами....84 Урок 5. Управляющие конструкции....85 5.1. Условные выражения и операторы....85 5.1.1. Простое условное выражение....85 5.1.2. Множественное условное выражение....86 5.1.3. Условные операторы....86 5.2. Блоки....87 5.3. Выражения выбора. Прерывание....87 5.4. Циклы....90 5.4.1. Цикл со счетчиком....90 5.4.2. Цикл с предусловием....91 5.4.3. Цикл с постусловием....92 5.4.4. Цикл по массиву....93 5.4.5. Прерывание цикла....93 5.4.6. Прерывание текущей итерации цикла....94 5.5. Безусловный переход....95 5.6. Завершение работы модуля....95 5.7. Упражнение. Заставляем приложение convertorS.php соблюдать правила русского языка....95 Сделайте сами....98 5.8. Упражнение. Реализуем единую точку входа на веб-сайт....98 5.8.1. Теоретическое обоснование....98 5.8.2. Собственно упражнение....99 Урок 6. Функции....102 6.1. Объявление и вызов функций....102 6.1.1. Область видимости функций....103 6.1.2. Локальные, глобальные и статические переменные....104 6.1.3. Указание типов для параметров и возвращаемого результата....106 6.2. Параметры функций: особые случаи....107 6.2.1. Необязательные параметры....107 6.2.2. Функции с произвольным количеством параметров....107 6.2.3. Параметры с изменяемыми значениями. Передача по ссылке....108 6.3. Переменные функций....109 6.4. Анонимные функции....109 6.5. Рекурсия....111 6.6. Упражнение. Объявляем функцию, определяющую падежное окончание по числу....112 Сделайте сами....113 Урок 7. Объектное программирование: классы и объекты....114 7.1. Введение в объектное программирование....114 7.2. Объявление классов....115 7.2.1. Объявление свойств и методов....116 7.2.2. Конструкторы и деструкторы....117 7.2.3. Статические свойства и методы....118 7.2.4. Константы классов....119 7.3. Наследование классов....120 7.3.1. Перекрытие и переопределение методов....121 7.3.2. Решение проблем с наследованием статических методов....122 7.3.3. Абстрактные методы и классы....123 7.3.4. Окончательные методы и классы....124 7.4. Присваивание объектов. Ссылочные типы данных....125 7.5. Работа с объектами и классами....126 7.5.1. Работа с объектами....126 7.5.2. Работа с классами....127 7.6. Магические методы....128 7.7. Автозагрузка классов....130 Урок 8. Объектное программирование: трейты, интерфейсы и пространства имен....132 8.1. Трейты....132 8.1.1. Объявление и использование трейтов....132 8.1.2. Разрешение конфликтов....133 Простые случаи: автоматическое разрешение конфликтов....133 Сложные случаи: разрешение конфликтов вручную....135 8.1.3. Дополнительные инструменты для работы с трейтами....136 8.2. Интерфейсы....136 8.2.1. Объявление и реализация интерфейсов....137 8.2.2. Наследование интерфейсов....138 8.2.3. Дополнительные инструменты для работы с интерфейсами....138 8.3. Пространства имен....139 8.3.1. Объявление пространств имен....139 8.3.2. Обращение к сущностям, объявленным в других пространствах имен....140 Прямое обращение по пути....140 Выполнение импорта....141 8.3.3. Дополнительные инструменты для работы с пространствами имен....143 Урок 9. Архитектура модель-шаблон-контроллер....144 9.1. Введение в архитектуру модель-шаблон-контроллер....144 9.2. Упражнение. Пишем класс модели и реализуем автозагрузку классов....146 Сделайте сами....148 9.3. Упражнение. Пишем контроллер....148 9.4. Упражнение. Создаем шаблоны....151 Урок 10. Генераторы и итераторы....155 10.1. Генераторы....155 10.2. Итераторы....156 10.2.1. Интерфейс Iterator....156 10.2.2. Интерфейс Countable....158 10.3. Упражнение. Превращаем модель в итерируемый класс....158 Урок 11. Регулярные выражения....160 11.1. Введение в регулярные выражения....160 11.1.1. Написание регулярных выражений....160 11.1.2. Поиск с применением регулярных выражений....161 11.1.3. Тестирование регулярных выражений....161 11.2. Литералы регулярных выражений....163 11.2.1. Разделители....163 11.2.2. Метасимволы....163 11.2.3. Поднаборы....164 11.2.4. Вариант....164 11.2.5. Квантификаторы....165 11.2.6. Подквантификатор. Жадный и щедрый режимы поиска....166 11.2.7. Группы и обратные ссылки....167 11.2.8. Обычные символы....168 11.3. Поиск и обработка фрагментов, совпадающих с регулярными выражениями....168 11.3.1. Обычный режим поиска....168 11.3.2. Глобальный поиск....170 11.3.3. Многострочный поиск....171 11.3.4. Замена совпавших фрагментов....172 11.3.5. Разбиение строк....173 11.4. Упражнение. Пишем маршрутизатор на основе регулярных выражений....174 Урок 12. Обработка ошибок. Исключения....176 12.1. Обработчики исключений....176 12.2. Классы исключений....177 12.3. Генерирование исключений....178 12.4. Обработчик исключений по умолчанию....179 12.5. Упражнение. Создаем веб-страницы с сообщениями об ошибках....180 ЧАСТЬ II. СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ MYSQL....186 Урок 13. Базы данных....188 13.1. Введение в реляционные базы данных....189 13.1.1. Таблицы, поля и записи....189 13.1.2. Индексы....191 13.1.3. Связи....192 13.1.4. Разграничение доступа....194 13.1.5. Серверные СУБД....195 13.2. Серверные СУБД MySQL и MariaDB....195 13.3. Программа для работы с базами данных phpMyAdmin....197 13.3.1. Открытие phpMyAdmin и выполнение входа....197 13.3.2. Навигация в phpMyAdmin....198 13.3.3. Работа с базой данных....199 Создание базы данных....199 Переименование базы данных....200 Изменение кодировки у базы данных....200 Удаление базы данных....200 13.3.4. Работа с таблицами....201 Создание таблицы....201 Переименование таблицы....203 Удаление таблицы....204 13.3.5. Работа с полями....204 Добавление поля в таблицу....204 Правка поля....204 Удаление поля....205 13.3.6. Работа с индексами....205 Добавление индекса в таблицу....205 Правка индекса....206 Удаление индекса....206 13.3.7. Работа со связями....207 Создание связи....207 Правка связи....208 Удаление связи....208 13.3.8. Работа с пользователями....208 Создание пользователя....208 Правка привилегий пользователя....212 Изменение пароля пользователя....213 Правка основных сведений о пользователе....213 Удаление пользователя....214 13.3.9. Работа с записями....215 Добавление записей....215 Правка записей....216 Удаление записей....217 13.3.10. Экспорт и импорт баз данных....217 Экспорт базы данных....217 Импорт базы данных....218 13.4. Упражнение. Создаем базу данных для веб-сайта фотогалереи....218 Урок 14. Написание запросов к базам данных. Язык SQL....222 14.1. Выполнение SQL-запросов в phpMyAdmin....222 14.2. Выборка записей....224 14.2.1. Простая выборка записей....224 14.2.2. Связывание таблиц и выборка полей из связанных записей....225 14.2.3. Фильтрация записей....227 14.2.4. Сортировка записей....231 14.2.5. Выборка заданного количества записей....232 14.3. Вычисления над группами записей....232 14.3.1. Агрегатные функции....232 14.3.2. Группировка записей....233 14.3.3. Фильтрация групп....234 14.4. Вложенные запросы....234 14.5. Добавление, правка и удаление записей....236 14.5.1. Добавление записей....236 14.5.2. Правка записей....237 14.5.3. Удаление записей....237 Урок 15. Выполнение запросов к базам данных MySQL средствами РНР....238 15.1. Соединение с базой данных....238 15.2. Выполнение простых запросов....239 15.2.1. Простые запросы на выборку записей....239 15.2.2. Простые запросы на изменение данных....241 15.3. Параметризованные запросы....241 15.3.1. Подготовка параметризованного запроса....241 15.3.2. Задание значений параметров в параметризованном запросе....242 15.3.3. Выполнение запроса....243 15.3.4. Получение результатов....243 15.4. Дополнительные инструменты....245 15.5. Обработка ошибок при работе с базами данных....246 15.6. Упражнение. Пишем базовый класс модели, работающей с базой данных....246 15.7. Упражнение. Создаем главную веб-страницу и веб-страницу категории....252 Сделайте сами....256 15.8. Упражнение. Реализуем пагинацию....257 15.9. Упражнение. Реализуем фильтрацию изображений....262 Сделайте сами....264 ЧАСТЬ III. ПРАКТИЧЕСКОЕ РНР-ПРОГРАММИРОВАНИЕ....266 Урок 16. Обработка клиентских запросов, генерирование ответов и включение модулей....268 16.1. Средства для обработки клиентских запросов....268 16.1.1. Получение данных, отправленных из веб-форм....268 16.1.2. Получение сведений о клиентском запросе и веб-сервере....268 16.2. Вывод данных....269 16.2.1. Простой вывод данных....269 16.2.2. Форматированный вывод данных....270 Форматированный вывод строк и чисел....270 Форматированный вывод временных отметок....272 16.2.3. Преобразование текста к виду, пригодному для вставки в HTML-код....273 16.3. Упражнение. Форматируем временные отметки....274 Сделайте сами....275 16.4. Задание заголовков и состояния ответа....275 16.4.1. Перенаправление....276 16.5. Упражнение. Задаем состояния ответа у веб-страниц сообщений об ошибках 404 и 503....276 Сделайте сами....277 16.6. Включение модулей....277 Урок 17. Обработка данных, введенных в веб-формы....278 17.1. Элементы управления HTML и отправляемые ими данные....278 17.2. Валидация и нормализация данных....280 17.2.1. Валидация данных....280 17.2.2. Нормализация данных....284 17.3. Упражнение. Реализуем в базовом классе модели добавление, правку и удаление записей....286 17.4. Упражнение. Создаем базовый класс формы....289 17.5. Упражнение. Реализуем добавление комментариев....294 17.6. Упражнение. Реализуем правку и удаление комментариев....298 Сделайте сами....301 Урок 18. Работа с файлами и папками....302 18.1. Получение сведений о текущем программном модуле....302 18.2. Работа с файлами....302 18.2.1. Получение сведений о файле....302 18.2.2. Манипуляции с файлами....304 18.2.3. Чтение и запись....304 18.3. Работа с папками....305 18.3.1. Получение сведений о папке....305 18.3.2. Манипуляции с папками....305 18.4. Получение сведений о дисках....306 18.5. Сохранение файлов, отправленных из веб-формы....307 18.6. Упражнение. Реализуем добавление, правку и удаление изображений....310 Сделайте сами....316 Урок 19. Работа с графикой....318 19.1. Создание и открытие изображений....318 19.1.1. Создание нового изображения....318 19.1.2. Открытие существующего изображения....318 19.2. Рисование фигур....319 19.2.1. Создание цветов для фигур....319 19.2.2. Рисование точек....320 19.2.3. Рисование линий....320 19.2.4. Рисование прямоугольников....321 19.2.5. Рисование эллипсов....322 19.2.6. Рисование полигонов....323 19.2.7. Рисование кривых....324 19.2.8. Закраска областей изображения....325 19.2.9. Задание толщины и стиля линий....326 19.2.10. Вывод текста....327 19.3. Изменение размеров и копирование изображений....328 19.3.1. Изменение размеров изображения....328 19.3.2. Копирование одного изображения в другое....329 19.4. Сохранение изображения....330 19.5. Удаление изображения....330 19.6. Получение сведений об изображении....330 19.7. Упражнение. Реализуем создание и вывод миниатюр....331 Урок 20. Cookie и сессии....335 20.1. Cookie....335 20.1.1. Запись данных в cookie....335 20.1.2. Получение данных, сохраненных в cookie....336 20.2. Сессии....337 20.2.1. Запуск, проверка состояния и использование сессии....337 20.2.2. Удаление сессии и сохраненных в ней данных....338 Урок 21. Базовые средства безопасности. Разграничение доступа....339 21.1. Реализация разграничения доступа....339 21.2. Безопасное хранение паролей. Хэши....340 21.3. Упражнение. Реализуем вход и выход....342 21.4. Упражнение. Защищаем веб-сайт....348 21.5. Упражнение. Создаем веб-страницу регистрации....354 21.6. Упражнение. Реализуем правку и удаление пользователей....357 Сделайте сами....360 Урок 22. Отправка электронной почты....361 22.1. Класс SendMailSmtpClass....361 22.2. Упражнение. Реализуем отправку оповещений о новых комментариях....363 Урок 23. Усиленные меры безопасности....368 23.1. Перевод веб-сайта на протокол HTTPS....368 23.2. Защита от атак типа CSRF....369 23.3. Упражнение. Противодействуем атакам CSRF....371 23.4. Двухэтапная регистрация пользователей....374 23.5. Упражнение. Делаем двухэтапную регистрацию....375 Урок 24. Веб-службы REST....380 24.1. Формат JSON и его поддержка в РНР....380 24.2. Стиль REST....382 24.2.1. Решение проблемы с передачей данных HTTP-методами PUT, РАТСН и DELETE. Подмена НТТР-метода....384 24.3. Программирование фронтенда....385 24.3.1. Получение данных....385 24.3.2. Добавление фрагмента данных....386 24.3.3. Правка фрагмента данных....387 24.3.4. Удаление фрагмента данных....387 24.3.5. Реализация разграничения доступа....388 24.4. Упражнение. Пишем бэкенд....389 Урок 25. Настройки РНР....399 25.1. Включение и отключение расширений РНР....400 25.2. Настройки отправки файлов на сервер....401 25.3. Настройки сессий....401 25.4. Настройки вывода сообщений об ошибках....402 25.5. Настройки ограничения ресурсов....403 Заключение....404 ПРИЛОЖЕНИЯ....406 Приложение 1. Приоритет операторов....408 Приложение 2. Пакет хостинга ХАМРР....410 П2.1. Установка пакета ХАМРР....410 П2.2. Панель управления ХАМРР. Запуск и остановка веб-сервера и СУБД....415 П2.2.1. Указание языка при первом запуске....415 П2.2.2. Окно панели управления ХАМРР....415 П2.2.3. Запуск веб-сервера и СУБД....415 П2.2.4. Проверка работоспособности веб-сервера и СУБД....416 П2.2.5. Остановка веб-сервера и СУБД....417 П2.3. Использование веб-сервера....418 П2.3.1. Тестирование веб-сайта с применением ХАМРР....418 П2.3.2. Просмотр журналов работы веб-сервера и РНР....418 П2.4. Настройка РНР и решение проблем....419 П2.4.1. Настройка РНР....419 П2.4.2. Отключение кэширования файлов веб-обозревателем....419 Приложение 3. Описание электронного архива....422 Предметный указатель....424
Описание
В этом материале разберём тему: данных.
В доступной и наглядной форме, на сквозном примере рассказано о программировании динамических веб-сайтов на языке PHP с применением СУБД MySQL и MariaDB. В книге 25 иллюстрированных уроков и более 30 практических упражнений. Описывается программное генерирование веб-страниц, получение данных от пользователей и проверка их на корректность, работа с файлами, программное рисование графики, обработка cookie и сессий, отправка электронной почты. Рассказано о мерах защиты сайта: разграничение доступа, перевод на безопасный протокол HTTPS, защита от атак, шифрование данных. Рассмотрена архитектура «модель-шаблон-контроллер» и структурирование кода для дальнейшего сопровождения сайта. Дан краткий курс программирования веб-служб REST. Электронное приложение-архив на сайте издательства содержит коды всех примеров. Сквозной пример разработки веб-сайта фотогалереи и PHP-фреймворка поможет при построении собственных сайтов.
Вы узнаете, как:генерировать веб-страницы программно,получать и проверять на корректность данные, отправленные посетителем,выводить страницы с сообщениями об ошибках, применяя исключения,создавать базы данных MySQL и MariaDB в программе phpMyAdmin,программно рисовать графику,отправлять электронные письма,защитить сайт от несанкционированного проникновения,шифровать конфиденциальные данные,перевести сайт на безопасный протокол HTTPS,противодействовать сетевым атакам,писать веб-службы REST,разделить код на модели, шаблоны и контроллеры,написать свой PHP-фреймворк,создать полнофункциональный веб-сайт.
Файл доступен для загрузки ниже.
Поделиться
Частые вопросы
Можно ли скачать «PHP и MySQL. 25 уроков для начинающих» бесплатно?
Да, «PHP и MySQL. 25 уроков для начинающих» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.
В каком формате и какого размера файл?
Книга предоставляется в формате PDF, размер файла 26,8 МБ.
Кто автор и когда вышла книга?
автор — Дронов Владимир Александрович, издательство БХВ-Петербург, год выпуска 2021, 434 страниц.
О чём книга «PHP и MySQL. 25 уроков для начинающих»?
В книге 25 иллюстрированных уроков и более 30 практических упражнений.