PHP и MySQL СОЗДАНИЕ ИНТЕРНЕТ-МАГАЗИНА 2-е издание ttiittuullaa--PPHHPP MMyySSQQLL--22eedd..iinndddd 11 2255..1122..22000099 1188::2211::3399 BEGINNING PHP AND MYSQL E-COMMERCE FROM NOVICE TO PROFESSIONAL SECOND EDITION Cristian Darie and Emilian Balanescu ttiittuullaa--PPHHPP MMyySSQQLL--22eedd..iinndddd 22 2255..1122..22000099 1188::2211::3399 PHP и MySQL СОЗДАНИЕ ИНТЕРНЕТ-МАГАЗИНА 2-е издание Кристиан Дари и Эмилиан Баланеску Москва· Санкт-Петербург ·Киев 201 ttiittuullaa--PPHHPP MMyySSQQLL--22eedd..iinndddd 33 2255..1122..22000099 1188::2211::3399 ББК 32.973.26(cid:4)018.2.75 Д20 УДК 681.3.07 Издательский дом “Вильямс” Зав. редакцией С.Н. Тригуб Перевод с английского и редакция А.С. Молявко По общим вопросам обращайтесь в Издательский дом “Вильямс” по адресу: [email protected], http://www.williamspublishing.com Дари, Кристиан, Баланеску, Эмилиан. Д20 PHP и MySQL: создание интернет(cid:4)магазина, 2(cid:4)е изд. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2011. — 640 с. : ил. — Парал. тит. англ. ISBN 978(cid:4)5(cid:4)8459(cid:4)1602(cid:4)0 (рус.) ББК 32.973.26(cid:14)018.2.75 Все названия программных продуктов являются зарегистрированными торговыми мар(cid:4) ками соответствующих фирм. Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в ка(cid:4) кой бы то ни было форме и какими бы то ни было средствами, будь то электронные или меха(cid:4) нические, включая фотокопирование и запись на магнитный носитель, если на это нет пись(cid:4) менного разрешения издательства APress, Berkeley, CA. Authorized translation from the English language edition published by APress, Copyright © 2008 by Cristian Darie and Emilian Balanescu. All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. Russian language edition is published by Williams Publishing House according to the Agreement with R&I Enterprises International, Copyright © 2011. Научно(cid:20)популярное издание Кристиан Дари, Эмилиан Баланеску PHP и MySQL: создание интернет(cid:14)магазина 2(cid:4)е издание Литературный редактор Л.Н. Красножон Верстка М.А. Удалов Художественный редактор В.Г. Павлютин Корректор Л.А. Гордиенко Подписано в печать 24.12.2009. Формат 70x100/16. Гарнитура Times. Печать офсетная. Усл. печ. л. 51,6. Уч.(cid:4)изд. л. 33,77. Доп. тираж 1000 экз. Заказ № 0000. Отпечатано по технологии CtP в ОАО “Печатный двор” им. А. М. Горького 197110, Санкт(cid:4)Петербург, Чкаловский пр., 15. ООО “И. Д. Вильямс”, 127055, г. Москва, ул. Лесная, д. 43, стр. 1 ISBN 978(cid:4)5(cid:4)8459(cid:4)1602(cid:4)0 (рус.) © Издательский дом “Вильямс”, 2011 ISBN 978(cid:4)1(cid:4)59(cid:4)059864(cid:4)1 (англ.) © by Cristian Darie and Emilian Balanescu, 2008 Стр. 4 Îãëàâëåíèå Ââåäåíèå 14 ×àñòü I. Ïåðâûé ýòàï ðàçðàáîòêè 21 Ãëàâà 1. Íà÷àëî ðàçðàáîòêè ñàéòà ýëåêòðîííîãî ìàãàçèíà 23 Ãëàâà 2. Çàêëàäûâàåì ôóíäàìåíò 33 Ãëàâà 3. Íà÷àëî ðåàëèçàöèè ïðîåêòà TShirtShop 49 Ãëàâà 4. Ñîçäàíèå êàòàëîãà òîâàðîâ: ÷àñòü I 79 Ãëàâà 5. Ñîçäàíèå êàòàëîãà òîâàðîâ: ÷àñòü II 125 Ãëàâà 6. Àòðèáóòû òîâàðîâ 181 Ãëàâà 7. Îïòèìèçàöèÿ äëÿ ïîèñêîâûõ ñèñòåì 193 Ãëàâà 8. Ïîèñê â êàòàëîãå 223 Ãëàâà 9. Ïðèåì ïëàòåæåé ÷åðåç PayPal 247 Ãëàâà 10. Àäìèíèñòðèðîâàíèå êàòàëîãà: îòäåëû è êàòåãîðèè 263 Ãëàâà 11. Àäìèíèñòðèðîâàíèå êàòàëîãà: òîâàðû è àòðèáóòû 297 ×àñòü II. Âòîðîé ýòàï ðàçðàáîòêè 343 Ãëàâ12. Ñîçäàíèå îðèãèíàëüíîé êîðçèíû ïîêóïàòåëÿ 345 Ãëàâà 13. Óñîâåðøåíñòâîâàíèå ñàéòà ñ ïîìîùüþ AJAX 377 Ãëàâà 14. Ïðèåì çàêàçîâ îò ïîêóïàòåëåé 405 Ãëàâà 15. Ïðåäëîæåíèå äîïîëíèòåëüíûõ òîâàðîâ 431 ×àñòü III. Òðåòèé ýòàï ðàçðàáîòêè 443 Ãëàâà 16. Ó÷åòíûå çàïèñè êëèåíòîâ 445 Ãëàâà 17. Õðàíåíèå çàêàçîâ 499 Ãëàâà 18. Ðåàëèçàöèÿ êîíâåéåðà îáðàáîòêè çàêàçîâ: ÷àñòü I 523 Ãëàâà 19. Ðåàëèçàöèÿ êîíâåéåðà îáðàáîòêè çàêàçîâ: ÷àñòü II 543 Ãëàâà 20. Ðàáîòà ñ êðåäèòíûìè êàðòàìè 567 Ãëàâà 21. Îòçûâû î òîâàðàõ 593 Ãëàâà 22. Ðàáîòà ñ âåá-ñëóæáàìè Amazon.com 601 Ïðåäìåòíûé óêàçàòåëü 622 Стр. 5 Ñîäåðæàíèå Об авторах 12 О технических редакторах 13 Благодарности 13 Ââåäåíèå 14 Для кого предназначена эта книга 14 Структура книги 15 Этап I 15 Этап II 17 Этап III 18 Исходный код 19 Как связаться с авторами 20 От издательства 20 ×àñòü I. Ïåðâûé ýòàï ðàçðàáîòêè 21 Ãëàâà 1. Íà÷àëî ðàçðàáîòêè ñàéòà ýëåêòðîííîãî ìàãàçèíà 23 Решаем, нужно ли создавать сайт 23 Привлечение новых клиентов 24 Получение большего дохода от существующих клиентов 24 Снижение стоимости выполнения заказов 25 Зарабатывание денег 25 Риски и угрозы 26 Создание веб*сайта 27 Этап I. Базовая платформа сайта 27 Этап II. Создание собственной корзины покупателя 28 Этап III. Обработка заказов и дополнительные возможности 28 Сайт TShirtShop 30 Резюме 31 Ãëàâà 2. Çàêëàäûâàåì ôóíäàìåíò 33 Дизайн для дальнейшего роста 34 Выполнение долгосрочных требований с минимумом усилий 34 Трехуровневая архитектура 35 Выбор технологий и инструментов 40 Использование PHP для генерации динамического веб*контента 40 Разделение кода и оформления с помощью Smarty 41 Использование MySQL на уровне данных 42 MySQL и трехуровневая архитектура 45 Выбор стандартов именования и оформления кода 46 Резюме 48 Ãëàâà 3. Íà÷àëî ðåàëèçàöèè ïðîåêòà TShirtShop 49 Редактор исходного кода 50 Установка XAMPP 50 Подготовка псевдонима TShirtShop 53 Стр. 6 Ñîäåðæàíèå 7 Установка Smarty 56 Создание каркаса сайта 58 Создание входной страницы TShirtShop 61 Обработка ошибок и сообщения о них 68 Подготовка базы данных 75 Загрузка исходного кода 77 Резюме 78 Ãëàâà 4. Ñîçäàíèå êàòàëîãà òîâàðîâ: ÷àñòü I 79 Демонстрация товаров посетителям сайта 79 Как выглядит каталог товаров 80 Предварительный просмотр каталога товаров 80 Последовательность действий в этой главе 83 Хранение информации из каталога 84 Концепция таблиц данных 85 Создание таблицы department 91 Работа с базой данных 93 Язык SQL 94 Хранимые процедуры в MySQL 97 Добавление управляющей логики в приложение 99 Установка соединения с MySQL 100 Написание кода уровня логики приложения 105 Отображение списка отделов 111 Использование подключаемых файлов Smarty 112 Создание фабрики ссылок 119 Резюме 122 Ãëàâà 5. Ñîçäàíèå êàòàëîãà òîâàðîâ: ÷àñòü II 125 Хранение новых данных 125 Из чего состоит реляционная база данных 125 Создание и заполнение новых таблиц 131 Добавление названий товаров и их привязка к категориям 133 Использование диаграмм баз данных 135 Запросы к новым данным 136 Получение кратких описаний товаров 136 Соединения таблиц данных 137 Постраничное отображение списков товаров 140 Создание хранимых процедур 141 Завершение кода уровня логики приложения 149 Определение констант для списков товаров и активизация сеансов 149 Реализация уровня представления 155 Отображение информации об отделе и категориях 156 Отображение списка категорий 161 Отображение списков товаров 164 Отображение содержимого главной страницы 170 Отображение подробных сведений о товарах 173 Резюме 179 Ãëàâà 6. Àòðèáóòû òîâàðîâ 181 Реализация уровня данных 182 Реализация уровня логики приложения 186 Реализация уровня представления 187 Резюме 192 Стр. 7 8 Ñîäåðæàíèå Ãëàâà 7. Îïòèìèçàöèÿ äëÿ ïîèñêîâûõ ñèñòåì 193 Оптимизация в TShirtShop 194 Поддержка URL с ключевыми словами 195 Модуль mod_rewrite и регулярные выражения 198 Генерация URL с ключевыми словами 202 Коррекция URL с помощью перенаправлений 206 Модификация заголовков страниц 210 Обновление разбивки списков на страницы 212 Корректные сообщения об ошибках 404 и 500 214 Резюме 221 Ãëàâà 8. Ïîèñê â êàòàëîãå 223 Методы поиска в каталоге 223 Реализация поиска в базе данных 225 Поиск с помощью ключевых слов WHERE и LIKE 225 Полнотекстовый поиск в MySQL 226 Реализация кода уровня логики приложения 233 Реализация уровня представления 237 Создание поля ввода 237 Отображение результатов поиска 241 Резюме 246 Ãëàâà 9. Ïðèåì ïëàòåæåé ÷åðåç PayPal 247 Выбор платежной компании 248 Начинаем работу с PayPal 248 Интеграция корзины покупателя и приема платежей в сайт TShirtShop 249 Использование механизма покупки отдельных товаров в PayPal 260 Резюме 261 Ãëàâà 10. Àäìèíèñòðèðîâàíèå êàòàëîãà: îòäåëû è êàòåãîðèè 263 Предварительное обсуждение интерфейса администратора 264 Создание страницы администрирования каталога 266 Использование защищенных соединений 267 Конфигурирование TShirtShop для SSL 269 Получение сертификата SSL 269 Принудительное использование соединений SSL 270 Аутентификация администраторов 271 Администрирование отделов 279 Реализация уровня представления 280 Реализация уровня логики приложения 285 Реализация уровня данных 286 Администрирование категорий 288 Резюме 295 Ãëàâà 11. Àäìèíèñòðèðîâàíèå êàòàëîãà: òîâàðû è àòðèáóòû 297 Администрирование атрибутов товаров 297 Администрирование товаров 310 Администрирование описаний товаров 315 Сведения о товарах: реализация уровня представления 315 Сведения о товарах: реализация уровня логики приложения 326 Сведения о товарах: реализация уровня данных 330 Создание ссылок для администрирования 334 Резюме 341 Стр. 8 Ñîäåðæàíèå 9 ×àñòü II. Âòîðîé ýòàï ðàçðàáîòêè 343 Ãëàâà 12. Ñîçäàíèå îðèãèíàëüíîé êîðçèíû ïîêóïàòåëÿ 345 Проектирование корзины покупателя 346 Сохранение информации о корзинах покупателей 348 Реализация уровня данных 349 Реализация уровня логики приложения 353 Реализация уровня представления 358 Администрирование корзины покупателя 369 Удаление товаров, находящихся в корзинах покупателей 370 Создание страницы администрирования корзин покупателей 370 Резюме 375 Ãëàâà 13. Óñîâåðøåíñòâîâàíèå ñàéòà ñ ïîìîùüþ AJAX 377 Краткое введение в AJAX 377 JavaScript 378 DOM 379 Объект XMLHttpRequest 379 Написание устойчивого к сбоям кода 386 Всегда ли полезен AJAX 387 Создание корзины покупателя с применением AJAX 389 Применение AJAX для добавления товаров в корзину 389 Модернизация корзины покупателя с помощью AJAX 400 Резюме 404 Ãëàâà 14. Ïðèåì çàêàçîâ îò ïîêóïàòåëåé 405 Реализация системы приема заказов 405 Сохранение деталей заказов 407 Реализация уровня данных 409 Реализация уровня логики приложения 411 Реализация уровня представления 412 Администрирование заказов 415 Отображение существующих заказов 419 Отображение деталей заказов 424 Резюме 430 Ãëàâà 15. Ïðåäëîæåíèå äîïîëíèòåëüíûõ òîâàðîâ 431 Увеличение продаж с помощью динамических рекомендаций 431 Выбор рекомендаций из базы данных 433 Реализация рекомендаций для товаров 439 Резюме 442 ×àñòü III. Òðåòèé ýòàï ðàçðàáîòêè 443 Ãëàâà 16. Ó÷åòíûå çàïèñè êëèåíòîâ 445 Хранение учетных записей клиентов 446 Схема учетных записей клиентов TShirtShop 446 Создание таблиц customer и shipping_region 447 Реализация классов, отвечающих за безопасность 448 Реализация функциональности хеширования на уровне логики приложения 448 Реализация функциональности шифрования на уровне логики приложения 451 Хранение информации о кредитных картах с помощью класса SecureCard 456 Добавление учетных записей пользователей в TShirtShop 464 Реализация уровня данных 467 Стр. 9 10 Ñîäåðæàíèå Реализация уровня логики приложения 469 Реализация уровня представления 472 Создание страницы оплаты 488 Защита конфиденциальных сведений с помощью SSL 496 Резюме 498 Ãëàâà 17. Õðàíåíèå çàêàçîâ 499 Добавление заказов в учетные записи пользователей 499 Администрирование заказов 503 Изменение уровня данных 503 Изменение уровня логики приложения 505 Изменение уровня представления 507 Налоги и стоимость доставки 512 Налоги 512 Стоимость доставки 513 Реализация учета налогов и стоимости доставки 514 Резюме 521 Ãëàâà 18. Ðåàëèçàöèÿ êîíâåéåðà îáðàáîòêè çàêàçîâ: ÷àñòü I 523 Что такое конвейер обработки заказов 524 Проектирование конвейера обработки заказов 524 Закладываем основы 528 Обновление кода обработки заказов 537 Резюме 542 Ãëàâà 19. Ðåàëèçàöèÿ êîíâåéåðà îáðàáîòêè çàêàçîâ: ÷àñòü II 543 Реализация этапов конвейера 543 Класс PsInitialNotification 544 Класс PsCheckFunds 545 Класс PsCheckStock 546 Класс PsStockOk 547 Класс PsTakePayment 548 Класс PsShipOk 548 Класс PsFinalNotification 549 Проверка работы конвейера 550 Обновление страницы оплаты 557 Обновление страницы администрирования заказов 560 Реализация уровня данных 560 Реализация уровня логики приложения 561 Реализация уровня представления 561 Резюме 565 Ãëàâà 20. Ðàáîòà ñ êðåäèòíûìè êàðòàìè 567 Основы транзакций с кредитными картами 567 Работа со шлюзами оплаты 568 Основы транзакций с кредитными картами 569 Работа с DataCash 569 Запрос преаутентификации 570 Ответ на запрос преаутентификации 571 Запрос завершения 572 Работа с Authorize.net 583 Резюме 592 Стр. 1 0
Description: