[Image] Пятница, 22.11.2024, 18:38 [Image]
SEO, технологии, игры, IT новости
[Image] Главная Регистрация Вход [Image]
[Image] Приветствую Вас, Гость · RSS [Image]
Меню сайта

Форма входа
 Блог
Главная » 2011 » Январь » 13 » Работа с "магическими" кавычками
14:28
Работа с "магическими" кавычками
При обработке и отображении данных из форм возникает общая проблема, трактуемая иногда как некая тонкость РНР — "магические" кавычки. При работе с внешними по отношению к РНР данными (с вводом из форм или баз данных) РНР может автоматически добавлять символ отмены (обратный слэш) к любому символу, который может привести к возникновению проблемы. Например, если строка содержит символ кавычки (одиночной или двойной), это может привести к проблеме при отображении этой строки в браузере.
НА ЗАМЕТКУ
Возможность использования "магических" кавычек включается или отключается с помощью директив magic_quotes_gpc,magic_quotes_runtime и magic_quotes_sybase.

<INPUT TYPE="TEXT" NAME="myvalue" VALUE="">
При выполнении в РНР результирующий HTML-код будет содержать дополни-
тельные двойные кавычки для атрибута VALUE:
<INPUT TYPE="TEXT" NAME="myvalue" VALUE=""некоторое значение"">
К сожалению, при работе с данными, передаваемыми на Web-сервер (GET, POST и так далее), не существует возможности включения или отключения "магических" кавычек во время выполнения сценария. Для того чтобы сделать сценарий совместимым с любой конфигурацией РНР нужно иметь в виду оба обстоятельства. Для таких целей предусмотрены две новых функции: addslashes () и stripslashes (). При необходимости эти функции используются для добавления или удаления слэшей из строки.
Синтаксис этих функций имеет следующий вид:
addslashes($string)
stripslashes($string)
В обоих случаях $ s t r i n g представляет обрабатываемую строку, и обе функции возвращают ее модифицированный вариант. При работе с удаленными данными функция stripslashes () будет работать независимо от того, включен ли режим "магических" кавычек (потому что если "магические" кавычки отключены, не будет никаких слэшей для удаления). Однако определить, когда нужно добавлять слэши в строку, сложнее.
Если режим "магических" кавычек включен, вызов функции addslashes () добавит символы отмены в строку, в которую эти символы добавляются автоматически (то есть строка будет дважды отменена), что приведет к ошибкам в сценарии. Поэтому использовать addslashes () можно только в том случае, если есть уверенность, что РНР уже не сделал это за вас.
Для определения состояния режима "магических" кавычек во время выполнения служат функции get_magic_quotes_gpc () и get_magic_quotes_runtime ().

НА ЗАМЕТКУ
В рассматриваемых примерах (поскольку в этой главе работа выполняется в основном с данными форм) будет использоваться только функция get_magic_quotes_gpc (). При работе с базами данных (или другими внешними источниками данных, отличными от форм) нужно пользоваться функцией get_magic_quotes_runtime ( ) .
Эти две функции служат для определения активных установок соответствующих директив конфигурации РНР. Каждая из них возвращает целочисленное значение 1 (означает, что режим "магических" кавычек включен) или 0. Эти функции (см. листинг 5.1) можно использовать для создания собственной функции my_addslashes (), которая добавляет слэши в зависимости от состояния режима "магических" кавычек в конфигурации РНР.
Листинг 5.1. Пользовательская addslashes () -функция my_addslashes ()
function my_addslashes($string) {
return (get_magic_quotes_gpc() == 1) ? $string : addslashes($string);
i
?>
Теперь имеется эффективный метод работы с "магическими" кавычками вне зависимости от конфигурации РНР, в которой имеет дело сценарий. При использовании собственной функции my_ddslashes () вместо встроенной версии можнобыть уверенным, что данные будут отформатированы в требуемом виде.
Категория: Все о PHP | Просмотров: 1755 | Добавил: witkom8382 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2024
Категории
Оптимизация сайта [591]
Создание сайтов [355]
Заработать в интернете [508]
Технологии [46]
Полезное [391]
Услуги и сервисы [317]
Автоблог [105]
Скрипты для Ucoz [39]
Движок на сайт [10]
Все о Joomla и Drupal [20]
Все о PHP [91]
Поиск
Пользовательский поиск
Статистика


Онлайн всего: 10
Гостей: 10
Пользователей: 0
Seo сайт, технологии продвижения, мета теги, оптимизация сайтов, новости сео, Скрипты, Ucoz

Рейтинг@Mail.ru