Метод GET
От: Astaroth Россия  
Дата: 02.08.04 18:11
Оценка:
Вопрос следующий. Есть URL вида

http://subdomain.domain.zone/dir1/dir2/filename.ext?val1=smth1&val2=smth2&val3=smth3#mark

Задача: передать этот URL методом GET. Одной переменной.
Есть ли в этом примере символы, корректная передача которых не гарантируется?
Таковыми, судя по всему, являются '&' и '='. Что ещё?

Просто я не вполне уверен, какие символы нужно заменять, а какие нет.
WinAmp играет: (умолк пока)
http://livejournal.com/users/breqwas
Re: Метод GET
От: Lexey Россия  
Дата: 02.08.04 20:29
Оценка: 3 (1)
Здравствуйте, Astaroth, Вы писали:

http://subdomain.domain.zone/dir1/dir2/filename.ext?val1=smth1&val2=smth2&val3=smth3#mark

A>Задача: передать этот URL методом GET. Одной переменной.

A>Есть ли в этом примере символы, корректная передача которых не гарантируется?
A>Таковыми, судя по всему, являются '&' и '='. Что ещё?

A>Просто я не вполне уверен, какие символы нужно заменять, а какие нет.


Смотри RFC 2516. А вообще, больниство скриптовых языков предоставляют функции типа URLEncode/URLDecode, которые поддерживают нужные преобразования.
... << RSDN@Home 1.1.4 beta 1 >>
Re[2]: Метод GET
От: Alex-AKF  
Дата: 02.08.04 21:21
Оценка:
03.08.04 в 00:29 Lexey в своём письме писал(а):

> Здравствуйте, Astaroth, Вы писали:

>
> http://subdomain.domain.zone/dir1/dir2/filename.ext?val1=smth1&amp;val2=smth2&amp;val3=smth3#mark
>
> A>Задача: передать этот URL методом GET. Одной переменной.
> A>Есть ли в этом примере символы, корректная передача которых не
> гарантируется?
> A>Таковыми, судя по всему, являются '&' и '='. Что ещё?
>
> A>Просто я не вполне уверен, какие символы нужно заменять, а какие нет.
>
> Смотри RFC 2516. А вообще, больниство скриптовых языков предоставляют
> функции типа URLEncode/URLDecode, которые поддерживают нужные
> преобразования.

на самом деле даже по 2 вариации каждой:
' '=%20
' '=+
Posted via RSDN NNTP Server 1.9 beta
Re: Метод GET
От: Nowhere_None  
Дата: 03.08.04 04:58
Оценка:
Здравствуйте, Astaroth, Вы писали:

A>Вопрос следующий. Есть URL вида


A>http://subdomain.domain.zone/dir1/dir2/filename.ext?val1=smth1&amp;val2=smth2&amp;val3=smth3#mark


A>Задача: передать этот URL методом GET. Одной переменной.

A>Есть ли в этом примере символы, корректная передача которых не гарантируется?
A>Таковыми, судя по всему, являются '&' и '='. Что ещё?

A>Просто я не вполне уверен, какие символы нужно заменять, а какие нет.


Если собираешься передавать такую строку GET-ом, то тебе нужно убрать или
заменить на что-нить "http://". Сервер не принимает запросы, в которых
"http://" встречается два раза.
Re: Метод GET
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 03.08.04 05:32
Оценка:
Здравствуйте, Astaroth, Вы писали:

A>Вопрос следующий. Есть URL вида


A>http://subdomain.domain.zone/dir1/dir2/filename.ext?val1=smth1&amp;val2=smth2&amp;val3=smth3#mark


A>Задача: передать этот URL методом GET. Одной переменной.

A>Есть ли в этом примере символы, корректная передача которых не гарантируется?
A>Таковыми, судя по всему, являются '&' и '='. Что ещё?

A>Просто я не вполне уверен, какие символы нужно заменять, а какие нет.


Ой вей, я бы сделал проще — всю строку в Base64 и всего делов
Re[2]: Метод GET
От: just_dmitry Россия www.parsec-club.ru
Дата: 03.08.04 06:43
Оценка: 10 (1)
F>Ой вей, я бы сделал проще — всю строку в Base64 и всего делов

Ой нет, я с этим уже накололся. В алфавит base64 входит "+", который является reserved в uri. Насколько я помню в пробел декодируется.
Re: Метод GET
От: DSD Россия http://911.ru/cv
Дата: 03.08.04 16:46
Оценка: 4 (1)
Здравствуйте, Astaroth, Вы писали:

A>Вопрос следующий. Есть URL вида


A>http://subdomain.domain.zone/dir1/dir2/filename.ext?val1=smth1&amp;val2=smth2&amp;val3=smth3#mark


A>Задача: передать этот URL методом GET. Одной переменной.

A>Есть ли в этом примере символы, корректная передача которых не гарантируется?
A>Таковыми, судя по всему, являются '&' и '='. Что ещё?

A>Просто я не вполне уверен, какие символы нужно заменять, а какие нет.


было тут
Автор: DSD
Дата: 25.07.04

там есть исходники, в которых есть функция кодирования URL:
  function inet_url_encode_str($str) {
     $arr = array();
     $len = strlen($str);
     for ($i=0;$i<$len;$i++) $arr[]=(preg_match('/[\dA-Za-z]/', $str{$i}))?$str{$i}:sprintf("%%%02X", ord($str{$i}));
     return implode('',$arr);
  }


суть: в отличие от RFC переводим в HEX вид (%XX) все, что не является цифрами и англицкими буквами.
работать будет железно
--
DSD
Re[3]: Метод GET
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 03.08.04 16:50
Оценка:
Здравствуйте, just_dmitry, Вы писали:

F>>Ой вей, я бы сделал проще — всю строку в Base64 и всего делов


_>Ой нет, я с этим уже накололся. В алфавит base64 входит "+", который является reserved в uri. Насколько я помню в пробел декодируется.


А и верно ведь! Опять я прокосячил Вот что значит — не говори, двадцать раз не подумав...

З.Ы. А так хотелось блеснуть интеллектом
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.