PHP и MySQL. Исчерпывающее руководство PHP и MySQL. Исчерпывающее руководство Если у вас есть опыт разработки сайтов с помощью CSS и JavaScript, то эта книга переведет вас на новый уровень веб-разработки - создание динамических веб-сайтов на основе PHP и MySQL. С помощью практических примеров в книге вы узнаете все возможности серверного программирования. Вы прочитаете, как выстраивать базу данных, управлять контентом и обмениваться информацией с пользователями, применяя запросы и веб-формы. Написание PHP-скриптов и создание веб-форм Синтаксис PHP и SQL Создание и управление базой данных Создание динамических веб-страниц, которые изменяются при каждом новом просмотре Разработка шаблонов страниц об ошибках, которые будут выводиться пользователям Использование файловой системы для доступа к данным пользователя, включая иллюстрации и двоичные файлы Создание административной страницы для управления сайтом Питер 978-5-459-01550-8
590 руб.
Russian
Каталог товаров

PHP и MySQL. Исчерпывающее руководство

Временно отсутствует
?
  • Описание
  • Характеристики
  • Отзывы о товаре
  • Отзывы ReadRate
Если у вас есть опыт разработки сайтов с помощью CSS и JavaScript, то эта книга переведет вас на новый уровень веб-разработки - создание динамических веб-сайтов на основе PHP и MySQL. С помощью практических примеров в книге вы узнаете все возможности серверного программирования. Вы прочитаете, как выстраивать базу данных, управлять контентом и обмениваться информацией с пользователями, применяя запросы и веб-формы.
Написание PHP-скриптов и создание веб-форм
Синтаксис PHP и SQL
Создание и управление базой данных
Создание динамических веб-страниц, которые изменяются при каждом новом просмотре
Разработка шаблонов страниц об ошибках, которые будут выводиться пользователям
Использование файловой системы для доступа к данным пользователя, включая иллюстрации и двоичные файлы
Создание административной страницы для управления сайтом

Оставить заявку на описание
?
Содержание
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Что такое PHP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
PHP ориентирован на работу в сети . . . . . . . . . . . . . . . . . . . . . . . . . . 15
PHP не дает столько вольностей, сколько допускается в JavaScript . . . 17
PHP — это интерпретатор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Что такое MySQL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Об этой книге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Macintosh и Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
FTP: важная деталь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Структура книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Внешние ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Недостающий компакт-диск . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Отзывы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Об авторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
О творческой группе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
От издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Часть 1. Основы PHP и MySQL
Глава 1. PHP: что, где и зачем? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Подбор инструментов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
PHP на персональном компьютере (PC) . . . . . . . . . . . . . . . . . . . . . . . 27
PHP на компьютерах Macintosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Подбор текстового редактора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Оглавление 7
Создание вашей первой программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Запуск вашей первой программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Создание вашей второй программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Начало работы: создание HTML-страницы . . . . . . . . . . . . . . . . . . . . . 42
Создание PHP-сценария . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Изменчивость переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Выкладывание кода HTML, CSS и PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Запуск вашей второй программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Глава 2. Синтаксис PHP: удивительный и таинственный . . . . . . . . . . . . . 50
Получение информации из веб-формы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Непосредственный доступ к параметрам запроса . . . . . . . . . . . . . . . . 50
Создание собственных переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Работа с текстом в PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Объединение текста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Поиск в тексте . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Изменение текста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Обрезка и замена текста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Переменная $_REQUEST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Массивы могут содержать несколько значений . . . . . . . . . . . . . . . . . . 74
Работа с $_REQUEST как с массивом . . . . . . . . . . . . . . . . . . . . . . . . . 76
Что делать с пользовательской информацией? . . . . . . . . . . . . . . . . . . 80
Глава 3. MySQL и SQL: база данных и язык . . . . . . . . . . . . . . . . . . . . . . . . 82
Что такое база данных? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Базы данных являются постоянным хранилищем . . . . . . . . . . . . . . . . 82
База данных — это в первую очередь структура . . . . . . . . . . . . . . . . . 84
(Хорошие) базы данных являются реляционными . . . . . . . . . . . . . . . . 86
Установка MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
MySQL для Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
MySQL для Mac OS X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Запуск вашего первого SQL-запроса . . . . . . . . . . . . . . . . . . . . . . . . . .100
SQL — язык для разговора с базами данных . . . . . . . . . . . . . . . . . . . . . . . . .105
Вход в базу данных вашего веб-сервера . . . . . . . . . . . . . . . . . . . . . . .107
Использование базы данных с помощью команды USE . . . . . . . . . . . .109
Создание таблиц с помощью инструкции CREATE . . . . . . . . . . . . . . . .110
Удаление таблиц с помощью команды DROP . . . . . . . . . . . . . . . . . . .114
Вставка нескольких строк с помощью команды INSERT . . . . . . . . . . . .115
И в завершение — команда SELECT . . . . . . . . . . . . . . . . . . . . . . . . . .1168 Оглавление
Часть 2. Динамические веб-страницы
Глава 4. Подключение PHP к MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
Создание простого PHP-сценария, предназначенного для подключения . . . . .120
Подключение к базе данных MySQL . . . . . . . . . . . . . . . . . . . . . . . . . .121
Выбор используемой базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
Демонстрация таблиц базы данных с помощью команды SHOW . . . . .127
Обработка ошибок путем наблюдения за отсутствием результата . . . .128
Вывод SQL-результатов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
Приведение кода в порядок с помощью нескольких файлов . . . . . . . . . . . . . .133
Замена набранных вручную значений переменными . . . . . . . . . . . . .134
Абстрагирование важных значений путем заключения
их в отдельный файл . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
Переменные изменяются, а константы сохраняют постоянство . . . . . .137
Создание элементарного исполнителя SQL-запросов . . . . . . . . . . . . .140
Создание HTML-формы с большим пустым полем ввода . . . . . . . . . . .140
Подключение к базе данных (еще раз) . . . . . . . . . . . . . . . . . . . . . . . .142
Запуск пользовательского SQL-запроса (еще раз) . . . . . . . . . . . . . . . .143
Ввод вашего первого запроса, основанного
на применении веб-технологий . . . . . . . . . . . . . . . . . . . . . . . . . . .145
Обработка запросов, не выбирающих информацию
с помощью команды SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148
Учет человеческого фактора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152
По возможности нужно избегать внесения изменений
в пользовательский ввод . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153
Глава 5. Улучшение поиска с помощью регулярных выражений . . . . . .157
Сопоставление строк, двойная скорость . . . . . . . . . . . . . . . . . . . . . . . . . . . .158
Простая программа поиска в строке . . . . . . . . . . . . . . . . . . . . . . . . . .158
Поиск одной строки... или другой . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
Учет позиции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
Избавление от trim и strtoupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
Поиск набора символов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
Регулярные выражения: к бесконечности и еще дальше . . . . . . . . . . .172
Глава 6. Создание динамических веб-страниц . . . . . . . . . . . . . . . . . . . . . .174
Повторное обращение к пользовательской информации . . . . . . . . . . . . . . . .174
Проектирование таблиц базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176
В правильных таблицах баз данных всегда есть столбец id . . . . . . . . .177
Ваш друг автоприращение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178Оглавление 9
ID и первичные ключи — хорошие компаньоны . . . . . . . . . . . . . . . . .178
Добавление ограничений к базе данных . . . . . . . . . . . . . . . . . . . . . .180
Сохранение информации о пользователе . . . . . . . . . . . . . . . . . . . . . . . . . . . .182
Создание SQL-запроса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
Вставка данных о пользователе . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185
Первое действие по подтверждению . . . . . . . . . . . . . . . . . . . . . . . . .188
Не нужно путать пользователей с программистами . . . . . . . . . . . . . .189
Покажите мне пользователя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191
Макетирование страницы профиля пользователя . . . . . . . . . . . . . . . .191
Изменение структуры таблицы с помощью ALTER . . . . . . . . . . . . . . . .194
Создание сценария: первый проход . . . . . . . . . . . . . . . . . . . . . . . . . .196
Выбор пользователя из базы данных
с помощью инструкции SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . .201
Извлечение значений из результата SQL-запроса . . . . . . . . . . . . . . . .204
Получение ID пользователя сценарием show_user .php . . . . . . . . . . . .207
Перенаправление и повторное обращение к сценарию, создающему
новых пользователей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210
Обновление формы регистрации . . . . . . . . . . . . . . . . . . . . . . . . . . . .210
Обновление сценария создания пользователя . . . . . . . . . . . . . . . . . .213
Усовершенствование кода с помощью регулярных
выражений (в очередной раз) . . . . . . . . . . . . . . . . . . . . . . . . . . . .216
Часть 3. Переход от веб-страниц
к веб-приложениям
Глава 7. Когда что-то не получается (но должно получаться) . . . . . . . .222
Проектирование страниц ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .224
Что должны видеть пользователи? . . . . . . . . . . . . . . . . . . . . . . . . . . .225
Понятие о том, когда и сколько нужно говорить . . . . . . . . . . . . . . . . .228
Поиск компромисса для страниц ошибок с помощью PHP . . . . . . . . . . . . . . . .230
Создание страницы ошибки с кодом PHP . . . . . . . . . . . . . . . . . . . . . .231
Проверка принятого решения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
Ожидайте неожиданного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234
А теперь вас ждут проблемы безопасности и фишинга . . . . . . . . . . . .237
Добавление отладки к приложению . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240
Включение отчета об ошибках, выдаваемого
интерпретатором PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24110 Оглавление
Переход от require к require_once . . . . . . . . . . . . . . . . . . . . . . . . . . . .247
Сейчас вы меня видите, а сейчас нет . . . . . . . . . . . . . . . . . . . . . . . . .249
Переадресация на ошибку . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251
Обновление вашего сценария для использования show_error .php . . . .251
Простота и абстракция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
Переадресация не видит пути к файлу . . . . . . . . . . . . . . . . . . . . . . . .256
Глава 8. Обработка изображений и решение
более сложных задач . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260
Изображения — это просто файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261
Формы HTML могут готовить почву . . . . . . . . . . . . . . . . . . . . . . . . . .263
Отправка изображения пользователя на ваш сервер . . . . . . . . . . . . .266
Были ли ошибки при отправке файла? . . . . . . . . . . . . . . . . . . . . . . . .270
Сохранение местоположения изображения в базе данных . . . . . . . . .279
Изображения, предназначенные для просмотра . . . . . . . . . . . . . . . . . . . . . . .282
Выбор изображения с помощью инструкции SELECT
и вывод его на экран . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283
Преобразование путей файловой системы в URL-адреса . . . . . . . . . . .285
Отображение картинки вашего пользователя: дубль два . . . . . . . . . .289
Несколько небольших исправлений в app_config .php . . . . . . . . . . . . .291
А теперь совсем о другом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293
Глава 9. Двоичные объекты и загрузка изображений . . . . . . . . . . . . . . . .294
Хранение разных объектов в различных таблицах . . . . . . . . . . . . . . . . . . . . .294
Вставка в таблицу необработанного изображения . . . . . . . . . . . . . . . . . . . . .297
Функция getimagesize не возвращает размер файла . . . . . . . . . . . . . .300
Функция file_get_contents оправдывает свое название . . . . . . . . . . . .300
Вставка изображения с помощью инструкции INSERT . . . . . . . . . . . . .300
Пока ваши двоичные данные вставлять небезопасно . . . . . . . . . . . . . . . . . . .301
Вставка строки в переменную . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302
Получение правильного ID перед перенаправлением . . . . . . . . . . . . .305
Связывание пользователей и изображений . . . . . . . . . . . . . . . . . . . . . . . . . .308
Вставка изображения при вставке пользователя . . . . . . . . . . . . . . . .310
Связывание таблиц с помощью условия WHERE . . . . . . . . . . . . . . . . .316
Покажите мне изображение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318
Вывод изображения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319
Перехват и обработка ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324
Тест, тест и еще раз тест . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .328Оглавление 11
Встроить изображение ничуть не сложнее, чем его просмотреть . . . . . . . . . .329
Вам нужен лишь идентификатор изображения . . . . . . . . . . . . . . . . . .329
Сценарий может быть в виде указания в теге источника
изображения (src) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330
Итак, какой же подход лучше? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335
Ладно, если вы непременно хотите получить конкретный ответ... . . .335
Глава 10. Вывод списков, итерация и администрирование . . . . . . . . . . .337
Вещи, которые никогда не меняются . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338
Пользовательский интерфейс, или Краткость
по-прежнему сестра таланта . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338
Нужен также список пожеланий . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340
Вывод списка всех пользователей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341
Выбор с помощью SELECT нужной (на данный момент)
информации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342
Создание простой страницы администрирования . . . . . . . . . . . . . . . .344
Перебор элементов массива . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346
Удаление пользователя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350
Разбор отдельных компонентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350
Объединение всех составляющих . . . . . . . . . . . . . . . . . . . . . . . . . . . .351
Удаление пользователей не должно быть некой
тайной операцией . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .354
Возражения, высказываемые вашим пользователям . . . . . . . . . . . . . . . . . . . .358
У перенаправления есть некоторые ограничения . . . . . . . . . . . . . . . .359
Возвращение окна предупреждения, создаваемого
с помощью JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362
Функция alert прерывает действия . . . . . . . . . . . . . . . . . . . . . . . . . . .368
Приведение сообщений к единому стандарту . . . . . . . . . . . . . . . . . . . . . . . . .369
Создание новой сервисной функции для отображения . . . . . . . . . . . .372
Появление дубликатов — вполне ожидаемая проблема . . . . . . . . . . .374
Коды сценариев View и Display имеют общий характер . . . . . . . . . . . .376
Интеграция утилит, представлений и сообщений . . . . . . . . . . . . . . . . . . . . . .377
Вызов повторяющегося кода из сценария View . . . . . . . . . . . . . . . . . .377
Лучше использовать гибкие функции . . . . . . . . . . . . . . . . . . . . . . . . .378
Стандартизация и объединение вывода сообщений
в сценарии View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .384
Создание функции для вызова двух функций . . . . . . . . . . . . . . . . . . .386
Теперь нужно просто распространить эту информацию
на весь код . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38712 Оглавление
Часть 4. Безопасность и реальное окружение
Глава 11. Аутентификация и авторизация . . . . . . . . . . . . . . . . . . . . . . . . .392
Начнем со стандартной аутентификации . . . . . . . . . . . . . . . . . . . . . . . . . . . .393
Стандартная аутентификация с использованием HTTP-заголовков . . .394
Стандартная аутентификация проводится... стандартно . . . . . . . . . . .395
Самая худшая из всех аутентификаций . . . . . . . . . . . . . . . . . . . . . . .396
Получение данных о полномочиях вашего пользователя . . . . . . . . . .397
Отмена не подходит для аутентификации . . . . . . . . . . . . . . . . . . . . .398
Получение пользовательских полномочий (на этот раз всерьез!) . . . .399
Извлечение всего одинакового . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .403
Еще один сервисный сценарий: authorize .php . . . . . . . . . . . . . . . . . . .403
Пароли не должны находиться в сценариях PHP . . . . . . . . . . . . . . . . . . . . . .407
Обновление таблицы users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .408
Работа с вновь созданными недопустимыми данными . . . . . . . . . . . . .409
Вам нужно получить исходные имя пользователя и пароль . . . . . . . .411
Вставка имени пользователя и пароля . . . . . . . . . . . . . . . . . . . . . . . .415
Подключение сценария authorize .php к таблице users . . . . . . . . . . . . .419
Пароли обеспечивают безопасность, но и сами они
должны быть защищены . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .422
Шифрование текста с помощью функции crypt . . . . . . . . . . . . . . . . . .423
Однонаправленное шифрование с помощью функции crypt . . . . . . . .424
При шифровании используется соль . . . . . . . . . . . . . . . . . . . . . . . . .425
Глава 12. Cookie-файлы, вопросы регистрации
и избавление от примитивных окон . . . . . . . . . . . . . . . . . . . . . . . . . . . .428
Выход за рамки стандартной аутентификации . . . . . . . . . . . . . . . . . . . . . . . .429
Начало с создания стартовой страницы . . . . . . . . . . . . . . . . . . . . . . .430
Управление регистрацией пользователя при входе в приложение . . .432
От HTTP-аутентификации к использованию сookie-файлов . . . . . . . . .435
Регистрация при входе в приложение с использованием cookie-файлов . . . . .436
Зарегистрировался пользователь или нет? . . . . . . . . . . . . . . . . . . . . .438
Пытается ли пользователь зарегистрироваться? . . . . . . . . . . . . . . . . .438
Отображение страницы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .440
Перенаправление по мере необходимости . . . . . . . . . . . . . . . . . . . . .442
Регистрация пользователя при входе в приложение . . . . . . . . . . . . . .444
Пустые страницы и истечение срока действия cookie-файлов . . . . . . .447
Ошибки не всегда должны прерывать работу приложения . . . . . . . . .450
Настройка на повторные попытки . . . . . . . . . . . . . . . . . . . . . . . . . . .454Оглавление 13
Добавление контекстно-зависимых меню . . . . . . . . . . . . . . . . . . . . . . . . . . . .455
Установка меню . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .456
От HTML к сценариям . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .459
Отмена регистрации пользователей . . . . . . . . . . . . . . . . . . . . . . . . . .463
Требование создания cookie-файла . . . . . . . . . . . . . . . . . . . . . . . . . .465
Глава 13. Авторизация и сессии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .469
Моделирование групп в базе данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .469
Добавление таблицы groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .470
Отношение «многие ко многим» . . . . . . . . . . . . . . . . . . . . . . . . . . . .471
Проведение теста на принадлежность к группе . . . . . . . . . . . . . . . . .475
Проверка на принадлежность к группе . . . . . . . . . . . . . . . . . . . . . . . . . . . . .476
Сценарий authorize .php нуждается в функции . . . . . . . . . . . . . . . . . .477
Получение списка групп . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479
Последовательный перебор групп . . . . . . . . . . . . . . . . . . . . . . . . . . .481
Разрешить, отказать, перенаправить . . . . . . . . . . . . . . . . . . . . . . . . .485
Меню, ориентированное на принадлежность к той или иной группе . . . . . . . .487
Введение в практику использования сессий браузера . . . . . . . . . . . . . . . . . .491
Сессии находятся на серверной стороне . . . . . . . . . . . . . . . . . . . . . .494
Сессии должны быть запущены . . . . . . . . . . . . . . . . . . . . . . . . . . . . .494
От $_COOKIE к $_SESSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .495
Сессии должны быть еще и перезапущены . . . . . . . . . . . . . . . . . . . . .496
Переменная $_REQUEST не включает в себя данные
переменной $_SESSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .500
Меню для любого пользователя? . . . . . . . . . . . . . . . . . . . . . . . . . . . .502
А теперь отмените регистрацию . . . . . . . . . . . . . . . . . . . . . . . . . . . . .503
А вы не забыли о проблеме фишинга? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .504
А зачем вообще использовать cookie-файлы? . . . . . . . . . . . . . . . . . . . . . . . . .507
Перевод заглавия:   PHP & MySQL: The Missing Manual
Штрихкод:   9785459015508
Аудитория:   12 лет и старше
Бумага:   Офсет
Масса:   696 г
Размеры:   235x 165x 27 мм
Тираж:   2 000
Литературная форма:   Руководство
Сведения об издании:   Переводное издание
Тип иллюстраций:   Черно-белые
Язык:   Русский
Отзывы
Найти пункт
 Выбрать станцию:
жирным выделены станции, где есть пункты самовывоза
Выбрать пункт:
Поиск по названию улиц:
Подписка 
Введите Reader's код или e-mail
Периодичность
При каждом поступлении товара
Не чаще 1 раза в неделю
Не чаще 1 раза в месяц
Мы перезвоним

Возникли сложности с дозвоном? Оформите заявку, и в течение часа мы перезвоним Вам сами!

Captcha
Обновить
Сообщение об ошибке

Обрамите звездочками (*) место ошибки или опишите саму ошибку.

Скриншот ошибки:

Введите код:*

Captcha
Обновить