Сейчас: 15:11:47   29-го марта 2024 г.
UsefulScript.ruСкриптыРазныеДекодирование URL адресов
34
149

Декодирование URL адресов

Напомним, что URL адреса отправляются браузерами в интернет в ASCII-кодировке. Если в каком-либо URL адресе содержатся символы, не входящие в ASCII-кодировку, то URL автоматически конвертируется браузером. Под конвертированием URL адреса понимается замена небезопасных символов знаком «%», за которым следуют два шестнадцатеричных числа, которые соответствуют значениям символов из кодировки ISO-8859-1. Также URL адрес не должен содержать пробелы (обычно они заменяются знаком «+»).


Предположим, Вы зашли в статистику посещений Вашего сайта и увидели там URL вида:

Цитата:
http://usefulscript.ru/search.php?text=%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82+
%D1%81%D0%BF%D0%BE%D0%B9%D0%BB%D0%B5%D1%80%D0%B0&searchid=1876853&l10n=ru&web=0#1118

Из первой части данного URL можно понять, что пользователь воспользовался поиском на страничке search.php. Но для того, чтобы узнать, что именно вводил пользователь, данный URL необходимо декодировать.


Ниже как раз находится форма для наглядного примера работы скрипта декодирования URL:




Таким образом, воспользовавшись скриптом декодирования, мы получим следующую строку с раскодированный URL:

Цитата:
http://usefulscript.ru/search.php?text=Скрипт спойлера&searchid=1876853&l10n=ru&web=0#1118

Вот теперь становится ясным, что пользователь на страничке search.php, в строку поиска вводил поисковую фразу "Скрипт спойлера".


Для того чтобы получить на своем сайте точно такую же форму кодирования/раскодирования URL адресов, добавьте следующий JavaScript код:

JavaScript код:
<script type="text/javascript">
function 
coding() {
    var 
obj document.getElementById('url');
    var 
url obj.value;
    
obj.value encodeURIComponent(url);
}
function 
decoding() {
    var 
obj document.getElementById('url');
    var 
url obj.value;
    
obj.value decodeURIComponent(url.replace(/\+/g,  " "));
}
</script>

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

HTML код:
<form action="#">
 <
textarea cols="70" rows="6" id="url"></textarea>
 <
br>
 <
input type="button" onclick="decoding()" value="Раскодировать">
 <
input type="button" onclick="coding()" value="Закодировать">
</
form>
Дата создания: 22:29:47 15.07.2012 г.
Посещений: 61130 раз(а).

Комментарии посетителей (2 шт.):
alex4532
2
# 941
(14:04:42  20.06.2013 г.)

Null Byte не правильно декодируется.
Ответить

Алексис
1
# 4042
(22:08:02  31.07.2017 г.)

Кстати, если переадресация, то раскодируется за два прохода. Сначала декодируется только начало адреса переадресации: http://... домен. Потом нужно скопировать начиная с него и до конца и раскодировать второй раз. И все работает.
Ответить

Закрыть
Ваше имя:
511 + 17 =
Добавить комментарий:
Ваше имя:
511 + 17 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 10

Какую CMS для сайта Вы предпочитаете?