[Закрыть]
 
popoff.donetsk.ua
Атеизм нуждается в религии ничуть не меньше, чем вера.
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Статьи - Программирование - Модули - xmlfilter - Расширение возможностей - xmlfilter_user_url
Я это делаю
Персональное меню
Голосование
Деньги, либо любимое занятие? Постоянный адрес этого вопроса
Ваш возраст (не обязательно):

Введите целое число от 3 до 99.
Почему? (не обязательно):
Другие вопросы
Поиск по сайту
Реклама
Программное обеспечение любой сложности
koins.com.ua
Статистика

xmlfilter_user_url

Постоянный адрес статьи

xmlfilter_user_url -- Проверить и преобразовать URL

Описание

string xmlfilter_user_url(string $s_url)

Выполняет проверку и преобразования значений атрибутов для которых указан формат url.

Если эта функция не определена, то никакие проверки допустимости URL и никакие преобразования URL не производятся.

В качестве возможного варианта преобразования допустимо, например, приписывание http:// в начале. Или, как это сделано на этом сайте, можно организовать самообновляющиеся ссылки на другие части сайта. Например, для того, что бы сослаться на статью с идентификатором 123, можно написать:

<a href=text 123>

Ссылки такого вида не зависят от того, как называется файл статьи, и в какой папке расположена эта статья.

Замечание. Если эта функция не определена, то пользователь сможет указывать в качестве значения URL java-script. Например, так:

<a href=javascript:alert('hacked!');>Click me!</a>

Приведенный мной пример, правда, не сработает, потому что в URL все же производятся преобразования запрещенных в URL символов, таких как двойные и одинарные кавычки, символы больше и меньше на соответствующие эквиваленты в формате %XX. Однако может существовать зловредный код, который не будет содержать в себе таких символов. Поэтому эту функцию рекомендуется все-таки определить и сделать в ней проверку валидности URL.

$s_url
Значение URL в таком виде, как оно было записано в исходном XML-документе.

Возвращает строку, которая содержит в себе URL в таком виде, в котором он должен быть записан в результирующем XML-документе.

Возвращает пустую строку, либо ложь в случае, если URL является неправильным и соответствующий тег следует запретить.

Пример реализации функции

Это очень упрощенный вариант проверки валидности URL. В моем проекте используется сложная схема работы со ссылками, включающая возможность управления локальными ссылками (локальными - в пределах сайта; управление состоит в том, что объект может переименовываться, перемещаться, изменяться правила генерирования ссылок для этого объекта, но ссылки при этом изменяются автоматически) и генерации ссылок в зависимости от языка просмотра. Для работы со ссылками есть специальный модуль, из которого здесь используется только одна функция, поэтому реально у меня реализация этой функции еще проще, чем показано на рисунке. Однако осуществляемые проверки - наоборот, гораздо сложнее.

<?php function xmlfilter_user_url($s_url)
{
  if(
substr($s_url,0,7)=='http://') return $s_url;
  if(
substr($s_url,0,7)=='mailto:') return $s_url;
  if(
substr($s_url,0,6)=='ftp://') return $s_url;
  if(
substr($s_url,0,1)=='#') return $s_url;
  return 
false;
}
?>

Последняя модификация: 27.08.05 19:40

Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>