[1] Введение
Чтобы разрешить преобразования, необходимо установить и настроить таблицу `column_info` и характерные директивы. Ознакомьтесь с разделом "Конфигурирование" чтобы разобраться как это сделать.
Вы можете применять различные преобразования к содержимому каждого поля. Преобразование затронет содержимое каждой области и преобразует его в соответствии с правилами, определенными для выбранного преобразования.
Скажем, к примеру, что имеется поле 'filename', которое содержит названия файлов. В обычном случае Вы увидели бы только имя файла. Но, используя преобразования можно преобразовать простое имя файла в гиперссылку, которая при щелчке будет открывать этот файл в новом окне браузера. Используя опции преобразования Вы можете также определить строки, добавляемые (перед или после) к строке или формат в котором будут сохранены результаты. Для общего краткого обзора всех доступных преобразований и их вариантов, можете обратиться к файлу //libraries/transformations/overview.php.
[2] Использование
Перейдите на страницу tbl_properties.inc.php. Затем кликните на "Change" (или иконке "Изменить") - после этого увидите три новых поля в конце линии. Они называются 'MIME-type', 'Browser transformation' и 'Transformation options'.
-
Поле 'MIME-type' это выпадающее поле. Вы имеете возможность оставить это поле пустым либо использовать 'auto' [эта опция пока не доступна]. Помните, что трансформации неактивны до тех пор, пока не задан MIME-type.
-
Поле 'Browser transformation' это тоже выпадающее поле. Вы можете выбрать необходимое общего количества предопределенных трансформаций. См. ниже как настроить собственное преобразование.
Существуют глобальные (global transformations) и mimetype-ограниченные (mimetype-bound transformations) трансформации. Глобальные преобразования могут использоваться для разных типов данных. Mimetype-bound трансформации обычно оперируют определенным mime типом. Есть преобразования, которые оперируют основным mime-типом (например 'image'), который, скорее всего, имеет подтип, и есть также преобразования, которые оперируют определенным подтипом (например 'image/jpeg').
Вы можете использовать преобразования на mimetypes, для которых функция не была определена. Нет никакой проверки на безопасность выбираемых данных, поэтому стоит отдельно позаботиться о проверке выводимых данных.
-
Поле 'Transformation options' представляет собой текстовое поле для ввода. Здесь Вы можете ввести функцию преобразования. Обычно преобразование работает с вариантами по умолчанию, но вообще неплохо просмотреть обзор, для того чтобы определиться какой вариант больше подходит.
При использовании ENUM/SET-Fields, необходимо разбить опции, используя формат 'a','b','c',...(NOTE THE MISSING BLANKS). В результате внутренние опции будут разобраны как массив, выбирая первое значение первого элемента в массиве, и т.д.
Если Вы хотите задать MIME кодировку, можно задать её в transformation_options. Используйте формат "'; charset=XXX'". Если вы используете трансформацию, для которой Вы можете задать 2 опции и Вы хотите добавить в конец кодировку, введите "'first parameter','second parameter','charset=us-ascii'". Вы можете, тем не менее, использовать значение по умолчанию для параметров: "'','','charset=us-ascii'".
[3] Файловая структура
Все mime-типы и их преобразования определяются через отдельные файлы, размещенные в директории 'libraries/transformations/'. Сделано это для того чтобы облегчить настройку и добавление новых преобразований.
Так как пользователь не может ввести собственные mime-типы, это гарантирует, что преобразования всегда сработают. Поэтому не имеет смысла преобразование к mime-типу, т.к. функция-преобразователь не знает, как оперировать.
Однако можно использовать пустые mime-типы и глобальные преобразования (global transformations), которые должны работать со многими mime-типами. Вы можете также использовать преобразования для различных mime-типов где они заданы, но при этом следует уделять внимание выбору преобразования вашего поля. Это осуществляется с помощью файла 'global.inc.php', который может быть включен любой другой функцией преобразования, и обеспечивает некоторые основные функции.
Всего 5 возможных имен файлов:
1. mime-тип+подтип преобразования:
[mimetype]_[subtype]__[transform].inc.php
Обратите внимание, что mime-тип и подтип разделены нижним подчеркиванием '_', которое не должно содержаться в их именах. Требования к имени функции/файла, точно такие же как в PHP.
Функция преобразования вызывается следующим образом: 'PMA_transform_[mimetype]_[subtype]__[transform]()'.
Пример:
text_html__formatted.inc.php PMA_transform_text_html__formatted()
2. mime-тип+подтип без задания функции преобразования
[mimetype]_[subtype].inc.php
Помните, что нельзя использовать символ нижнего подчеркивания '__' в имени файла. Не используйте спецсимволы в именах файлов, которые могут вызвать проблемы с файловой системой.
Никакой функции преобразования непосредственно в файле не определяется.
Пример:
text_plain.inc.php
(Нет функции)
3. mime-тип (без подтипа) без определенной функции преобразования
[mimetype].inc.php
Помните, что нельзя использовать символ нижнего подчеркивания '__' в имени файла. Не используйте спецсимволы в именах файлов, которые могут вызвать проблемы с файловой системой.
Никакая функция преобразования не определена непосредственно в файле.
Пример:
text.inc.php
(Нет функции)
4. глобальная функция преобразования (global transform function) без определенного mime-типа
global__[transform].inc.php
Функция преобразования будет вызываться: 'PMA_transform_global__[transform]()'.
Пример:
global__formatted
PMA_transform_global__formatted()
Возьмите за правило: используйте '_', чтобы разделить mime-тип и подтип, и '__', чтобы указать функцию преобразования. Все имена файлов, не содержащие '__' не отображаются в выпадающем списке функция преобразований.
Ознакомьтесь с файлом libraries/transformations/TEMPLATE для добавления ваших собственных функций преобразования.
Смотрите libraries/transformations/TEMPLATE_MIMETYPE для добавления mime-типа без функции преобразования. Также пишите описание функций в файлах локализации. Для каждой функции создается переменная $strTransformation_[filename without .inc.php]. С этой целью Вы можете использовать генератор шаблона (template generator), чтобы сгенерировать новые функции и соответствующие записи в файле локализации.
Чтобы создать новую функцию преобразования, см. libraries/transformations/template_generator.sh. Чтобы создать новый, пустой mime-тип см. libraries/transformations/template_generator_mimetype.sh
Функции преобразования всегда передаются три переменные:
1. $buffer - Содержит текст в столбце. Это - текст, который необходимо преобразовать.
2. $options - Содержит любые переданные пользователем опции функции преобразования как массив.
3. $meta - Содержит объект с полем информации о вашем столбце. Данные извлекаются с помощью функции mysql_fetch_field (). Это означает, что все свойства объекта, описанные на странице мануала доступны через данную переменную и могут использоваться, чтобы преобразовать область соответственно к unsigned/zerofill/not_null/... свойства. $meta->mimetype переменная содержит оригинальный MIME-тип поля (к примеру, 'text/plain', 'image/jpeg' и т.д.)
Глоссарий
-
.htaccess - файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов.
-
Blowfish - криптографический алгоритм, реализующий симметричное шифрование, разработанный Брюсом Шнейером в 1993 году
-
bzip2 - популярный компрессор с открытым исходным кодом, также алгоритм сжатия данных, разработанные Джулианом Сьюардом.
-
CGI (англ. Common Gateway Interface - "общий интерфейс шлюза") - стандарт интерфейса, служащего для связи внешней программы с веб-сервером.
-
Changelog (журнал изменений) - применительно к интернет-сайтам или программным продуктам - журнал или запись изменений произведённых в проекте.
-
Cross site scripting - см. Межсайтовый скриптинг.
-
CSV (англ. Comma Separated Values - "значения, разделённые запятыми") - текстовый формат, предназначенный для представления табличных данных.
-
extension (расширение) - модуль интерпретатора PHP, расширяющий его функциональность.
-
FAQ (от англ. Frequently Asked Questions - часто задаваемые вопросы) - собрание часто задаваемых вопросов по какой-либо теме и ответов на них.
-
FPDF (FreePDF) - свободно распространяемая библиотека PHP, позволяющая генерировать Файлы формата PDF исключительно с помощью PHP.
-
GD (графическая библиотека) - библиотека PHP для динамической работы с изображениями.
-
GD2 - см. графическая библиотека GD.
-
gzip - утилита сжатия и восстановления (декомпрессии) файлов.
-
HTTP (от англ. Hypertext Transfer Protocol — "протокол передачи гипертекста") - один из самых распространённых сетевых протоколов Интернета, основа Всемирной паутины.
-
HTTP Response Splitting - уязвимость являющаяся следствием того, что протокол HTTP позволяет прерывать заголовок и начинать новый, который и будет считаться "правильным" и обрабатываться "жертвой". HTTP Response Splitting позволяет проводить целый ряд атак, таких как отравление веб кэша, подмену страниц, "cross-user defacement", кража пользовательской информации и межсайтовый скриптинг.
-
https - расширение протокола HTTP, поддерживающее шифрование.
-
IIS (Internet Information Services) - набор серверов для нескольких служб Интернета от компании Майкрософт.
-
IP (англ. Internet Protocol — межсетевой протокол) — маршрутизируемый сетевой протокол, основа стека протоколов TCP/IP.
-
IP-адрес (сокращение от англ. Internet Protocol Address) — уникальный идентификатор (адрес) устройства (обычно компьютера), подключённого к локальной сети или интернету.
-
ISAPI (Internet Server Application Programming Interface) — это API для IIS (Internet Information Services), коллекции сетевых сервисов Microsoft Windows.
-
JPEG (Joint Picture Experts Group) - является широкоиспользуемым методом сжатия фотоизображений.
-
JPG - см. JPEG.
-
LATEX — наиболее популярный набор макрорасширений к TeX, который облегчает набор сложных документов.
-
Mac (Apple Macintosh) — линейка персональных компьютеров, спроектированных, разработанных, производимых и продаваемых фирмой "Apple Computer"
-
Mac OS X (Мак ОС десять) — операционная система фирмы Apple Computer, закрытый вариант BSD-UNIX университета Беркли, выпускается для компьютеров Macintosh (Макинтош) на базе процессоров PowerPC и Intel.
-
MCrypt - свободно распространяемая, криптографическая библиотека.
-
mcrypt - расширение PHP для доступа к функциям библиотеки MCrypt.
-
my.cnf - см. Конфигурационный файл MySQL.
-
my.ini - см. Конфигурационный файл MySQL.
-
MIME (Multipurpose Internet Mail Extensions) — стандарт, описывающий передачу различных типов данных по электронной почте.
-
module - вид расширения возможностей веб-сервера Apache.
-
MySQL — свободно распространяемая система управления базами данных (СУБД).
-
mysqli - расшинение PHP для полноценного доступа к функциональным возможностям MySQL версии 4.1 и выше.
-
mysql - расшинение PHP для доступа к MySQL.
-
OpenDocument - открытый стандарт для документов и офисных приложений.
-
OS X - см. Mac OS X.
-
Path disclosure (раскрытие местонахождения файла) - уязвимость, позволяющая несанкционированным способом вызвать сообщение об ошибке PHP, содержащее полный путь к директории.
-
PDF (аббревиатура от англ. Portable Document Format, произносится пи-ди-эф) - платформонезависимый формат электронных документов, созданный фирмой Adobe Systems с использованием ряда возможностей PostScript.
-
PEAR (акроним от английских слов PHP Extension and Application Repository) — это библиотека классов PHP с открытым исходным кодом.
-
PCRE (аббревиатура от англ. Perl Compatible Regular Expressions - "Perl-совместимые регулярные выражения") - функции Perl-совместимых регулярных выражений в PHP.
-
PHP (аббревиатура от англ. PHP: Hypertext Preprocessor) — скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных.
-
RFC (англ. Request for Comments - "запрос комментариев") — документ из серии пронумерованных информационных документов Интернета, содержащих технические спецификации и Стандарты, широко применяемые во Всемирной сети.
-
RFC 1952 - спецификация Формата файла GZIP версии 4.3
-
Root (в контексте MySQL) - привилегированный пользователь, имеющий доступ ко всем функциям базы данных. Учетная запись root должна использоваться исключительно в административных целях.
-
SSL (англ. Secure Sockets Layer — протокол защищённых сокетов) — криптографический протокол, обеспечивающий безопасную передачу данных по сети Интернет.
-
SQL (англ. Structured Query Language — язык структурированных запросов) — универсальный язык, применяемый для создания, модификации и управления данными в реляционных базах данных.
-
tar (англ. tape archive) — формат битового потока или файла архива, а также название традиционной для Unix программы для работы с такими архивами.
-
TCP (англ. Transmission Control Protocol — протокол управления передачей) — один из основных сетевых протоколов Internet, предназначенный для управления передачей данных в сетях TCP/IP.
-
UFPDF - Unicode/UTF-8 расширение для FPDF
-
URL (англ. Uniform Resource Locator) - это адрес страницы в интернете. URL состоит из доменного имени, пути к странице на сайте и имени файла страницы.
-
XML (Extensible Markup Language) (англ. eXtensible Markup Language — расширяемый язык разметки) — рекомендованный Консорциумом Всемирной паутины язык разметки, фактически представляющий собой свод общих синтаксических правил.
-
XSS - см. Межсайтовый скриптинг.
-
ZIP - популярный формат сжатия данных и архивации файлов.
-
zlib - бесплатная кроссплатформенная библиотека для сжатия данных, созданная Жан-лу Галли (фр. Jean-loup Gailly) и Марком Адлером (англ. Mark Adler).
-
База данных (database) - централизованное хранилище данных, обеспечивающее хранение, доступ, первичную обработку и поиск информации.
-
БД - см. "База данных".
-
Браузер (броузер) - это программное обеспечение для просмотра вебсайтов, то есть для запроса вебстраниц из Паутины, для их обработки и вывода, и для реализации перехода от одной страницы к другой.
-
Вебсервер (Webserver) — это сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, обычно вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными.
-
Внешний ключ (англ. foreign key) - поле таблицы предназначенное для хранения значения первичного ключа таблицы, связанной с данной (внешней) таблицей.
-
Имя хоста (анг. "hostname") - уникальное имя по которому подключенное к сети устройство может быть узнано в данной сети.
-
Индекс (англ. index) - объект базы данных, создаваемый с целью повышения производительности выполнения запросов.
-
Интернет-провайдер (Internet service provider, ISP) — организация, предоставляющая услуги доступа к Интернету и иные связанные с Интернетом услуги.
-
Клиент (client) — это аппаратный или программный компонент вычислительной системы, посылающий запросы серверу.
-
Ключ (key) - см. index.
-
Конфигурационный файл MySQL - файл, применяющийся для записи и хранения параметров программ MySQL, что исключает необходимость ввода этих параметров в командной строке при каждом вызове программы. В зависимости от версии ОС файл может называться my.ini или my.cnf.
-
Куки (от англ. cookies — домашнее печенье) - небольшой фрагмент служебной информации, помещаемый веб-сервером на компьютер пользователя.
-
Межсайтовый скриптинг (Cross site scripting или XSS) - это возможность вставки HTML кода в уязвимую страницу. Инъекция кода осуществляется через все доступные способы ввода информации. Успешное завершение атаки может привести к использованию значений различных переменных, доступных в контексте сайта, записи информации, перехвату пользовательских сессий и т.д.
-
Отложенная вставка (INSERT DELAYED) - впервые появилась в MySQL 3.22.15 и применимо только к таблицам ISAM и MyISAM. При определении ключевого слова DELAYED строки помещаются в очередь для более поздней вставки, и оператор завершает своё выполнение. Благодаря этому клиент может продолжить свою работу. Использование INSERT DELAYED хороший способ "ускорения" скрипта, т.к. вставка данных будет выполнена только тогда, когда она не приведет к замедлению работы сервера. Однако, нужно быть внимательным, т.к. в этом случае функция LAST_INSERT_ID() не возвратит значение AUTO_INCREMENT для столбца AUTO_INCREMENT
-
Поле (field) - строка в таблице с данными. Синоним термина реляционной базы данных "кортеж".
-
Порт (port) - параметр протоколов TCP и UDP, определяющий пункт назначения для данных, принимаемых по сети.
-
Сервер (англ. server от англ. to serve — служить) — в информационных технологиях — программный компонент вычислительной системы, выполняющий сервисные функции по запросу клиента, предоставляя ему доступ к определённым ресурсам.
-
Словарь данных (Data Dictionary) - отведенное место в базе данных, которое используется для хранения информации о самой базе данных. Словарь данных может содержать информацию: об архитектуре базы данных, о хранимых процедурах, о пользовательских привилегиях, и др.
-
Сокеты (socket) - название программного интерфейса для обеспечения информационного обмена между процессами.
-
Столбец (column) - это часть данных определённого типа, единого для всех полей таблицы. Синоним термина реляционной базы данных "атрибут".
-
Строка (Row) - см. Поле.
-
Таблица (table) - набор элементов данных организованных, определённых и сохранённых в виде горизонтальных строк и вертикальных столбцов, где каждый элемент может быть идентифицирован по его имени, ключу или позиции по отношению к другим элементам.
-
Тип таблицы (table type) - см. Типы хранилищ
-
Типы хранилищ (Storage Engines) - обработчики для различных типов таблиц.
-
Хост (анг. "host") - любое устройство, предоставляющее сервисы формата "клиент-сервер" в режиме сервера по каким-либо интерфейсам и уникально определённое на этих интерфейсах.
Достарыңызбен бөлісу: |