Если у вас есть опыт разработки сайтов с помощью CSS и JavaScript, то эта книга переведет вас на новый уровень веб-разработки - создание динамических веб-сайтов на основе PHP и MySQL. С помощью практических примеров в книге вы узнаете все возможности серверного программирования. Вы прочитаете, как выстраивать базу данных, управлять контентом и обмениваться информацией с пользователями, применяя запросы и веб-формы.
Название: PHP и MySQL. Исчерпывающее руководство Автор: Маклафлин Б. Издательство: Питер Год: 2013 Страниц: 512 Формат: PDF Размер: 10,6 МБ ISBN: 978-5-459-01550-8 Качество: Отличное
Содержание:
Введение Что такое PHP? PHP ориентирован на работу в сети PHP не дает столько вольностей, сколько допускается в JavaScript PHP - это интерпретатор Что такое MySQL? Об этой книге Macintosh и Windows FTP: важная деталь Структура книги Внешние ресурсы Недостающий компакт-диск Отзывы Об авторе О творческой группе Благодарности От издательства Часть 1. Основы PHP и MySQL Глава 1. PHP: что, где и зачем? Подбор инструментов PHP на персональном компьютере (PC) PHP на компьютерах Macintosh Подбор текстового редактора Создание вашей первой программы Запуск вашей первой программы Создание вашей второй программы Начало работы: создание HTML-страницы Создание PHP-сценария Изменчивость переменных Выкладывание кода HTML, CSS и PHP Запуск вашей второй программы Глава 2. Синтаксис PHP: удивительный и таинственный Получение информации из веб-формы Непосредственный доступ к параметрам запроса Создание собственных переменных Работа с текстом в PHP Объединение текста Поиск в тексте Изменение текста Обрезка и замена текста Переменная $_REQUEST Массивы могут содержать несколько значений Работа с $_REQUEST как с массивом Что делать с пользовательской информацией? Глава 3. MySQL и SQL: база данных и язык Что такое база данных? Базы данных являются постоянным хранилищем База данных - это в первую очередь структура (Хорошие) базы данных являются реляционными Установка MySQL MySQL для Windows MySQL для Mac OS X Запуск вашего первого SQL-запроса SQL - язык для разговора с базами данных Вход в базу данных вашего веб-сервера Использование базы данных с помощью команды USE Создание таблиц с помощью инструкции CREATE Удаление таблиц с помощью команды DROP Вставка нескольких строк с помощью команды INSERT И в завершение - команда SELECT Часть 2. Динамические веб-страницы Глава 4. Подключение PHP к MySQL Создание простого PHP-сценария, предназначенного для подключения Подключение к базе данных MySQL Выбор используемой базы данных Демонстрация таблиц базы данных с помощью команды SHOW Обработка ошибок путем наблюдения за отсутствием результата Вывод SQL-результатов Приведение кода в порядок с помощью нескольких файлов Замена набранных вручную значений переменными Абстрагирование важных значений путем заключения их в отдельный файл Переменные изменяются, а константы сохраняют постоянство Создание элементарного исполнителя SQL-запросов Создание HTML-формы с большим пустым полем ввода Подключение к базе данных (еще раз) Запуск пользовательского SQL-запроса (еще раз) Ввод вашего первого запроса, основанного на применении веб-технологий Обработка запросов, не выбирающих информацию с помощью команды SELECT Учет человеческого фактора По возможности нужно избегать внесения изменений в пользовательский ввод Глава 5. Улучшение поиска с помощью регулярных выражений Сопоставление строк, двойная скорость Простая программа поиска в строке Поиск одной строки… или другой Учет позиции Избавление от trim и strtoupper Поиск набора символов Регулярные выражения: к бесконечности и еще дальше Глава 6. Создание динамических веб-страниц Повторное обращение к пользовательской информации Проектирование таблиц базы данных В правильных таблицах баз данных всегда есть столбец id Ваш друг автоприращение ID и первичные ключи - хорошие компаньоны Добавление ограничений к базе данных Сохранение информации о пользователе Создание SQL-запроса Вставка данных о пользователе Первое действие по подтверждению Не нужно путать пользователей с программистами Покажите мне пользователя Макетирование страницы профиля пользователя Изменение структуры таблицы с помощью ALTER Создание сценария: первый проход Выбор пользователя из базы данных с помощью инструкции SELECT Извлечение значений из результата SQL-запроса Получение ID пользователя сценарием show_user. php Перенаправление и повторное обращение к сценарию, создающему новых пользователей Обновление формы регистрации Обновление сценария создания пользователя Усовершенствование кода с помощью регулярных выражений (в очередной раз) Часть 3. Переход от веб-страниц к веб-приложениям Глава 7. Когда что-то не получается (но должно получаться) Проектирование страниц ошибок Что должны видеть пользователи? Понятие о том, когда и сколько нужно говорить Поиск компромисса для страниц ошибок с помощью PHP Создание страницы ошибки с кодом PHP Проверка принятого решения Ожидайте неожиданного А теперь вас ждут проблемы безопасности и фишинга Добавление отладки к приложению Включение отчета об ошибках, выдаваемого интерпретатором PHP Переход от require к require_once Сейчас вы меня видите, а сейчас нет Переадресация на ошибку Обновление вашего сценария для использования show_error. php Простота и абстракция Переадресация не видит пути к файлу Глава 8. Обработка изображений и решение более сложных задач Изображения - это просто файлы Формы HTML могут готовить почву Отправка изображения пользователя на ваш сервер Были ли ошибки при отправке файла? Сохранение местоположения изображения в базе данных Изображения, предназначенные для просмотра Выбор изображения с помощью инструкции SELECT и вывод его на экран Преобразование путей файловой системы в URL-адреса Отображение картинки вашего пользователя: дубль два Несколько небольших исправлений в app_config. php А теперь совсем о другом Глава 9. Двоичные объекты и загрузка изображений Хранение разных объектов в различных таблицах Вставка в таблицу необработанного изображения Функция getimagesize не возвращает размер файла Функция file_get_contents оправдывает свое название Вставка изображения с помощью инструкции INSERT Пока ваши двоичные данные вставлять небезопасно Вставка строки в переменную Получение правильного ID перед перенаправлением Связывание пользователей и изображений Вставка изображения при вставке пользователя Связывание таблиц с помощью условия WHERE Покажите мне изображение Вывод изображения Перехват и обработка ошибок Тест, тест и еще раз тест Встроить изображение ничуть не сложнее, чем его просмотреть Вам нужен лишь идентификатор изображения Сценарий может быть в виде указания в теге источника изображения (src) Итак, какой же подход лучше? Ладно, если вы непременно хотите получить конкретный ответ Глава 10. Вывод списков, итерация и администрирование Вещи, которые никогда не меняются Пользовательский интерфейс, или Краткость по-прежнему сестра таланта Нужен также список пожеланий Вывод списка всех пользователей Выбор с помощью SELECT нужной (на данный момент) информации Создание простой страницы администрирования Перебор элементов массива Удаление пользователя Разбор отдельных компонентов Объединение всех составляющих Удаление пользователей не должно быть некой тайной операцией Возражения, высказываемые вашим пользователям У перенаправления есть некоторые ограничения Возвращение окна предупреждения, создаваемого с помощью JavaScript Функция alert прерывает действия Приведение сообщений к единому стандарту Создание новой сервисной функции для отображения Появление дубликатов - вполне ожидаемая проблема Коды сценариев View и Display имеют общий характер Интеграция утилит, представлений и сообщений Вызов повторяющегося кода из сценария View Лучше использовать гибкие функции Стандартизация и объединение вывода сообщений в сценарии View Создание функции для вызова двух функций Теперь нужно просто распространить эту информацию на весь код Часть 4. Безопасность и реальное окружение Глава 11. Аутентификация и авторизация Начнем со стандартной аутентификации Стандартная аутентификация с использованием HTTP-заголовков Стандартная аутентификация проводится… стандартно Самая худшая из всех аутентификаций Получение данных о полномочиях вашего пользователя Отмена не подходит для аутентификации Получение пользовательских полномочий (на этот раз всерьез!) Извлечение всего одинакового Еще один сервисный сценарий: authorize.php Пароли не должны находиться в сценариях PHP Обновление таблицы users Работа с вновь созданными недопустимыми данными Вам нужно получить исходные имя пользователя и пароль Вставка имени пользователя и пароля Подключение сценария authorize. php к таблице users Пароли обеспечивают безопасность, но и сами они должны быть защищены Шифрование текста с помощью функции crypt Однонаправленное шифрование с помощью функции crypt При шифровании используется соль Глава 12. Cookie-файлы, вопросы регистрации и избавление от примитивных окон Выход за рамки стандартной аутентификации Начало с создания стартовой страницы Управление регистрацией пользователя при входе в приложение От HTTP-аутентификации к использованию сookie-файлов Регистрация при входе в приложение с использованием cookie-файлов Зарегистрировался пользователь или нет? Пытается ли пользователь зарегистрироваться? Отображение страницы Перенаправление по мере необходимости Регистрация пользователя при входе в приложение Пустые страницы и истечение срока действия cookie-файлов Ошибки не всегда должны прерывать работу приложения Настройка на повторные попытки Добавление контекстно-зависимых меню Установка меню От HTML к сценариям Отмена регистрации пользователей Требование создания cookie-файла Глава 13. Авторизация и сессии Моделирование групп в базе данных Добавление таблицы groups Отношение «многие ко многим» Проведение теста на принадлежность к группе Проверка на принадлежность к группе Сценарий authorize. php нуждается в функции Получение списка групп Последовательный перебор групп Разрешить, отказать, перенаправить Меню, ориентированное на принадлежность к той или иной группе Введение в практику использования сессий браузера Сессии находятся на серверной стороне Сессии должны быть запущены От $_COOKIE к $_SESSION Сессии должны быть еще и перезапущены Переменная $_REQUEST не включает в себя данные переменной $_SESSION Меню для любого пользователя? А теперь отмените регистрацию А вы не забыли о проблеме фишинга? А зачем вообще использовать cookie-файлы?