Книга посвящена описанию ColdFusion - системы быстрой разработки web-серверных приложений. В настоящее время доступны версии ColdFusion для всех распространенных операционных систем. Эта система идеально подходит для разработки баз данных, доступ к которым осуществляется в интерактивном режиме. Излагаемый материал отличается последовательностью и логичностью. Рассматриваемые темы варьируются от истории возникновения ColdFusion, описания синтаксиса CFML и работы с базами данных до методов работы с внешними объектами (COM, Corba и Java). Здесь также рассматривается язык написания сценариев, CFScript, обеспечивающий столь же богатый набор инструментальных средств, как JavaScript. Книга снабжена большим количеством практических примеров, и будет представлять несомненный интерес, как для начинающих пользователей (имеющих представление о программировании на HTML и SQL), так и для опытных web-разработчиков.Краткое содержаниеГлава 1. Знакомство с ColdFusionЧто такое Allaire ColdFusion?Архитектура ColdFusion Подготовка ColdFusion к работе Глава 2. Основы ColdFusion Первый шаг Сохранение шаблонов CFML Синтаксис тегов Комментарии Типы данных Переменные Имена переменных Присваивание значений переменным Область видимости переменных Передача значений по умолчанию в теге CFPARAM Выражения Операторы Функции Вывод результатов вычислений Знаки # в выражениях Вложение знаков # Экранирование знаков # Условные команды Команды CFIF, CFELSEIF и CFELSE Конструкции CFSWITCH, CFCASE и CFDEFAULTCASE Функция IIF Циклы Индексные циклы Условные циклы Включение других шаблоновГлава 3. Передача данных между шаблонами Передача параметров в URL Передача специальных символов Получение списка всех переменных URL Передача данных в формах Типы полей формы Скрытые поля форм Автоматическая проверка данных полей форм Ручная проверка данных форм Получение списка всех переменных формы Проверка на предмет наличия параметровГлава 4. Основы работы с базами данных Настройка источников данных Создание источников данных в Администраторе ColdFusion Дополнительные ресурсы Тег CFQUERY Краткий курс SQLВыборка и вывод данных Создание базы данных Выборка данных Вывод результатов запроса Получение дополнительной информации о запросе Сортировка результатов Группировка записей Перебор результатов запроса Форматирование данных Форматирование простого текста Форматирование кода HTML Форматирование числовых данных Форматирование денежных сумм Форматирование логических величин Форматирование даты и времениГлава 5. Модификация баз данных Вставка записей Ввод данных на форме Сохранение данных в базе Обновление существующих записей Выбор обновляемой записи Динамическое заполнение формы при обновлении записи Обновление записи в базе данных Динамическое заполнение данными других элементов формы Удаление записей Удаление одной записи Удаление нескольких записей Запрос подтверждения перед удалениемГлава 6. Сложные типы данных Списки Цикл по списку Обработка списков Массивы Создание массивов Занесение данных в массив Операции с элементами массивов Структуры Создание структуры Занесение данных в структуры Перебор содержимого структуры Создание массива структур Операции со структурами Объекты запросовГлава 7. Хранение информации состояния Настройка Web Application Framework Файл Application.cfm Файл OnRequestEnd.cfm Устойчивые переменные Блокировка Переменные приложения Клиентские переменные Cookie Сеансовые переменные Серверные переменные Перенаправление браузераПример Механизм Web Application Framework Главный шаблон Настройка Завершение сеансаГлава 8. Безопасность Основные правила обеспечения безопасностиСамостоятельная реализация безопасности Создание таблицы в базе данных Изменения в шаблоне Application.cfm Ввод данных и регистрация пользователей Аутентификация пользователей Защита других файлов Уровни доступа Встроенный механизм безопасности ColdFusion Администрирование механизма Advanced Security Настройка каталога пользователей Аутентификация Авторизация доступа к конкретным ресурсам Временное переключение контекста Глава 9. Ошибки и обработка исключений Базовая обработка исключенийОбработка нестандартных прерыванийПовторное инициирование исключенийОбработка ошибок в Web Application Framework Ошибки при проверке форм Ошибки, вызванные обращениями к страницам Перехват конкретных исключений Мониторы Обработка ошибок на уровне сервера Обработка отсутствующих шаблонов Обработчик ошибок уровня сайтаГлава 10. Динамические элементы форм Объединение элементов форм HTML и CFMLПроверка данных Основные элементы ввода Ввод текста Список ПолзункиТаблицы Настройка столбцов таблицы Настройка строк таблицы Создание редактируемых таблиц Иерархические деревья Заполнение иерархического дерева данными Передача информации о выделении Рекурсивное построение дерева Нестандартные элементыЭлементы форм в версии 5.0 Сохранение введенных данных Использование регулярных выражений JavaScript для проверки данных Таблицы Ползунки Деревья Глава 11. Нетривиальные операции с базами данных Средства вывода Последовательный вывод данных Вывод подмножества записей Чередование цветов строк в таблицах HTML Многостолбцовый вывод Страничный просмотр записей Подавление пропусков Уточняющие запросыКэширование запросовНетривиальные аспекты SQL Динамическое построение команд SQL Создание и модификация таблиц Выборка уникальных значений Псевдонимы Скалярные функции Агрегатные функции Подзапросы Союзы Объединения CFSQL Вызов хранимых процедур Тег CFSTOREDPROC Тег CFQUERY Обработка транзакцийГлава 12. Операции с файлами и каталогами Операции с каталогами Вывод содержимого каталога Создание каталога Переименование каталога Удаление каталога Операции с файлами Отправка файлов Переименование файлов Перемещение файлов Копирование файлов Удаление файлов Считывание текстовых файлов Считывание двоичных файлов Запись текстовых файлов Запись двоичных файлов Запись в конец текстового файла Выполнение операций FTP Подключение к удаленному серверу Закрытие подключения Операции с файлами и каталогами Глава 13. Электронная почта Отправка электронной почты Отправка сообщений в формате HTML Отправка содержимого формы Отправка результатов запроса Группировка результатов запроса Рассылка персональных сообщений Отправка файловых вложений Передача дополнительной информации в заголовке Проблемы, возникающие с доставкой почты Прием сообщений Прием заголовков сообщений Прием сообщений в целом Вложения Удаление сообщений Построение почтового клиента с web-интерфейсомГлава 14. Взаимодействие с web-серверами Получение информации Сохранение информации в переменной Сохранение информации в файле Прием заголовочных данных HTTP Построение объектов запросов на основе текстовых файлов Передача параметров Анализ данныхПостроение статических страниц HTML Отправка информации Передача переменных формы Передача переменных URL Передача переменных CGI Передача cookie Передача файлов Рекомендации по применению тега CFHTTP Имена полей и разделенные текстовые файлы Аутентификация Глава 15. Протокол LDAP Знакомство с LDAP Атрибуты LDAP Общедоступные серверы LDAP Получение информации из каталога LDAP Выполнение запроса к каталогу LDAP Получение схемы данных с сервера LDAP Модификация данных LDAP Создание записей Обновление записей Удаление записей Изменение отличительного имениГлава 16. Поисковый интерфейс Verity Создание коллекций Создание коллекций в Администраторе ColdFusion Создание коллекций тегом CFCOLLECTION Заполнение коллекций Индексация файлов Индексация результатов запросов Поиск в коллекциях Построение поискового интерфейса Поисковый язык Verity Упрощенный поиск Стандартный поиск Создание интерфейса для расширенного поиска Обновление коллекций Создание новых записей в коллекциях Удаление записей из коллекции Сопровождение коллекций Оптимизация коллекций Восстановление коллекций Очистка коллекции Удаление коллекции Нетривиальные приемы Построение списка Lверхней десятки¦ Нестандартные атрибуты Изменение атрибута SUMMARY Настройка фильтра XML в механизме Verity Одновременный поиск в коллекциях документов и баз данныхГлава 17. Регулярные выражения в ColdFusion Синтаксис регулярных выражений Специальные символы Символьные классы POSIX ПоискЗамена Обратные ссылки Полезные регулярные выраженияВходные данные Тестирование регулярных выраженийГлава 18. Сценарии Основы синтаксиса CFScript Операции с переменными Комментарии Выполнение записи в выходной поток данныхКоманды CFScript if/else Команда switch/case Циклы for Циклы for/in Циклы while Циклы do/while Выход из цикла Команда continue Пользовательские функции Определение пользовательских функций Вызов пользовательских функций Область видимости уровня функции Ошибки и обработка исключений Библиотеки функций Глава 19. Нестандартные теги Общие сведения Область применения нестандартных тегов Нестандартные теги и CFINCLUDE Нестандартные теги и пользовательские функции Вызов нестандартных теговПередача данныхВозврат данных Предотвращение потенциальных конфликтов имен Возврат нескольких значений Проверка значений атрибутов и обработка ошибок Проверка обязательных атрибутов Необязательные атрибуты Проверка типов данных Ошибки и обработка исключений Объединение проверки с обработкой ошибок Нетривиальные приемы Вызов нестандартных тегов при помощи тега CMODULE Передача атрибутов в структуре Создание парных тегов Выполнение вложения нестандартных тегов Прерывание выполнения тега Защита теговТеги CFX Регистрация тегов CFX Вызов тегов CFX Дополнительные ресурсы Глава 20. WDDX и обмен данными Знакомство с WDDX Возможности WDDX Обзор WDDX Формат пакетов WDDX Сериализация и десериализация данных Сериализация и десериализация простых типов Сериализация и десериализация сложных типов данных Сохранение пакетов WDDX Сохранение пакетов в текстовом файле Сохранение пакетов в базе данных WDDX и обмен данными между серверами Синхронизация средствами ColdFusion Обмен данными между сервером и браузером с использованием JavaScript Передача данных браузеру Передача данных из JavaScript в ColdFusionГлава 21. Системный реестрСчитывание разделов и параметров реестраЗапись разделов и параметров Удаление разделов и параметров Глава 22. Планировщик ColdFusion Планирование задач в Администраторе ColdFusion Настройка Планировщика Создание задачи Ручной запуск задач Обновление и удаление задач Регистрация запланированных задач в журнале Планирование задач с помощью тега CFSCHEDULE Создание задач Обновление задач Удаление задачи Запуск задач Дополнительные соображенияГлава 23. Работа с внешними объектами Подключение к внешним объектам Взаимодействие с объектами COM Взаимодействие с объектами CORBA Взаимодействие с объектами Java Выполнение программ Вызов сервлетов JavaГлава 24. Графики и диаграммы Построение простого графикаГрафическое представление результатов запросаГрафики с активными областями Приложение А. Теги ColdFusion Классификация тегов по типу Алфавитный список тегов CFABORT CFADMINSECURITY CFAPPLET CFAPPLICATION CFASSOCIATE CFAUTHENTICATE CFBREAK CFCACHE CFCASE CFCATCH CFCOL CFCOLLECTION CFCONTENT CFCOOKIE CFDEFAULTCASE CFDIRECTORY CFDUMP CFELSE CFELSEIF CFERROR CFEXECUTE CFEXIT CFFILE CFFLUSH CFFORM CFFTP CFGRAPH CFGRAPHDATA CFGRID CFGRIDCOLUMN CFGRIDROW CFGRIDUPDATE CFHEADER CFHTMLHEAD CFHTTP CFHTTPPARAM CFIF CFIMPERSONATE CFINCLUDE CFINDEX CFINPUT CFINSERT CFINTERNALDEBUG CFLDAP CFLOCATION CFLOCK CFLOG CFLOOP CFMAIL CFMAILPARAM CFMODULE CFNEWINTERNALADMINSECURITY CFNEWINTERNALREGISTRY CFOBJECT CFOBJECTCACHE CFOUTPUT CFPARAM CFPOP CFPROCESSINGDIRECTIVE CFPROCPARAM CFPROCRESULT CFQUERY CFQUERYPARAM CFREGISTRY CFREPORT CFRETHROW CFSAVECONTENT CFSCHEDULE CFSCRIPT CFSEARCH CFSELECT CFSERVLET CFSERVLETPARAM CFSET CFSETTING CFSILENT CFSLIDER CFSTOREDPROC CFSWITCH CFTABLE CFTEXTINPUT CFTHROW CFTRANSACTION CFTREE CFTREEITEM CFTRY CFUPDATE CFWDDXПриложение Б. Функции ColdFusion Алфавитный указатель функций Abs ACos ArrayAppend ArrayAvg ArrayClear ArrayDeleteAt ArrayInsertAt ArrayIsEmpty ArrayLen ArrayMax ArrayMin ArrayNew ArrayPrepend ArrayResize ArraySet ArraySort ArraySum ArraySwap ArrayToList Asc Asin Atn AuthenticatedContext AuthenticatedUser BitAnd BitMaskClear BitMaskRead BitMaskSet BitNot BitOr BitSHLN BitSHRN BitXor Ceiling CFusion_DBConnections_Flush CFusion_Decrypt CFusion_Disable_DBConnections CFusion_Encrypt CFusion_GetODBCDSN CFusion_GetODBCINI CFusion_Settings_Refresh CFusion_VerifyMail CF_GetDataSourceUserName CF_IsColdFusionDataSource CF_SetDataSourcePassword CF_SetDataSourceUserName Chr CJustify Compare CompareNoCase Cos CreateDate CreateDateTime CreateObject CreateODBCDate CreateODBCDateTime CreateODBCTime CreateTime CreateTimeSpan CreateUUID DateAdd DateCompare DateConvert DateDiff DateFormat DatePart Day DayOfWeek DayOfWeekAsString DayOfYear DaysInMonth DaysInYear DE DecimalFormat DecrementValue Decrypt DeleteClientVariable DirectoryExists DollarFormat Duplicate Encrypt Evaluate Exp ExpandPath FileExists Find FindNoCase FindOneOf FirstDayOfMonth Fix FormatBaseN GetBaseTagData GetBaseTagList GetBaseTemplatePath GetClientVariablesList GetCurrentTemplatePath GetDirectoryFromPath GetException GetFileFromPath GetFunctionList GetHTTPRequestData GetHTTPTimeString GetK2ServerCollections GetK2ServerDocCount GetK2ServerDocCountLimit GetLocale GetMetricData GetProfileString GetTempDirectory GetTempFile GetTemplatePath GetTickCount GetTimeZoneInfo GetToken Hash Hour HTMLCodeFormat HTMLEditFormat IIf IncrementValue InputBaseN Insert Int IsArray IsAuthenticated IsAuthorized IsBinary IsBoolean IsCustomFunction IsDate IsDebugMode IsDefined IsK2ServerDocCountExceeded IsLeapYear IsNumeric IsNumericDate IsProtected IsQuery IsSimpleValue IsStruct IsWDDX JavaCast JSStringFormat Lcase Left Len ListAppend ListChangeDelims ListContains ListContainsNoCase ListDeleteAt ListFind ListFindNoCase ListFirst ListGetAt ListInsertAt ListLast ListLen ListPrepend ListQualify ListRest ListSetAt ListSort ListToArray ListValueCount ListValueCountNoCase LJustify Log Log10 LSCurrencyFormat LSDateFormat LSEuroCurrencyFormat LSIsCurrency LSIsDate LSIsNumeric LSNumberFormat LSParseCurrency LSParseDateTime LSParseEuroCurrency LSParseNumber LSTimeFormat LTrim Max Mid Min Minute Month MonthAsString Now NumberFormat ParagraphFormat ParameterExists ParseDateTime Pi PreserveSingleQuotes Quarter QueryAddColumn QueryAddRow QueryNew QuerySetCell QuotedValueList Rand Randomize RandRange REFind REFindNoCase RemoveChars RepeatString Replace ReplaceList ReplaceNoCase REReplace REReplaceNoCase Reverse Right RJustify Round RTrim Second SetLocale SetProfileString SetVariable Sgn Sin SpanExcluding SpanIncluding Sqr StripCR StructAppend StructClear StructCopy StructCount StructDelete StructFind StructFindKey StructFindValue StructGet StructInsert StructIsEmpty StructKeyArray StructKeyExists StructKeyList StructNew StructSort StructUpdate Tan TimeFormat ToBase64 ToBinary ToString Trim Ucase URLDecode URLEncodedFormat Val ValueList Week WriteOutput XMLFormat Year YesNoFormat Приложение В. Структура таблиц базы данных Приложение Г. Ресурсы ColdFusion в Интернете Официальные ресурсы Allaire Журналы Ресурсы сообщества пользователей ColdFusion Группы пользователейАлфавитный указатель