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

Голосование закрыто.

Поиск по сайту
Реклама
Гинеколог, стоматолог, психотерапевт в Донецке
Статистика

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

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