Автор Тема: Вопрос по кодированию url-запроса...  (Прочитано 4384 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Unregistered

  • Гость
Вопрос по кодированию url-запроса...
« : 31 Августа 2002, 06:11:37 »
Вопрос такой:
Мы передаем скрипту запрос, скрипт его получает и декодирует:

$var = $query->param(\'var\');

После некотых изменений переменной нам надо сделать ссылку:
print "/cgi-bin/script.cgi?var=$var";

для этого надо ее надо обратно закодировать. Это можно сделать с помощью модуля CGI? Если да, то как?

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Вопрос по кодированию url-запроса...
« Ответ #1 : 31 Августа 2002, 10:45:32 »
С помощю CGI - не знаю, но руцями мона тоже. Я не понимаю людей, которые используют такие здоровые на подъем модули, как CGI. Может кто-то обяснит, зачем загружать такое чудо, если надо всего несколько функций, и то, легко исполняемые вручную?

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Вопрос по кодированию url-запроса...
« Ответ #2 : 01 Сентября 2002, 00:33:04 »
Цитировать
Я не понимаю людей, которые используют такие здоровые на подъем модули, как CGI.  Может кто-то обяснит, зачем загружать такое чудо, если надо всего несколько функций, и то, легко исполняемые вручную?

Если нужны несколько функций, то нужно и подружать лишь нужные функции.
use CGI qw(param); - например.
А по поводу "зачем" уже неожнократно говорил. что мхобретение велосипеда не преследуется по закону.
Плюс обычно те, кто не использует модуль CGI идут по следующему пути: разбор параметров формы, метод GET, потом обычно дописывается метод POST, потом разбор multypart/form-data, ну и т.д.
На каждом этапе в код естественно закрадываются ошибки, которые устраняются, но они могут всплыть на более поздних этапах, что существенно увеличивает время их поиска.
Для тренировки и отработки навыков программирования этот путь безусловно полезен, но....:)))
2B OR NOT 2B = FF

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Вопрос по кодированию url-запроса...
« Ответ #3 : 01 Сентября 2002, 12:46:59 »
А я вот привык все делать вручную(и даже без ошибок!), потому от хорошего искать лучшего не изволю. Но коль ты говоришь, то я на досуге попробую. Не зря ведь г.: "век живи - вет учись!"

ВВЕДИТЕ СВОЕ ИМЯ

  • Гость
Вопрос по кодированию url-запроса...
« Ответ #4 : 02 Сентября 2002, 08:37:48 »
И все-таки это можно сделать с помощью CGI? Если нет, то как это можно сделать в ручную?

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Вопрос по кодированию url-запроса...
« Ответ #5 : 03 Сентября 2002, 00:46:19 »
Цитировать
ее надо обратно закодировать

зачем? Не перживай, и без тебя закодируют:-). Ты всё правильно записал.
ЗЫ Или я чего не так понял?
Ну к чему все это, лучше бы водки выпили...

ВВЕДИТЕ СВОЕ ИМЯ

  • Гость
Вопрос по кодированию url-запроса...
« Ответ #6 : 04 Сентября 2002, 08:34:13 »
to glebushka:  Ты скорее всего не так понял... Мне надо на странице вывести ссылку:

что-нибудь

При нажатии на эту ссылку в адресной строке появится значение $var, т.е. если переменная содержит русские буквы, то они и отобразятся, а надо чтоб вместо них были 16-ричные коды. Или ты имеешь ввиду, что независимо от того, что отображается в адресной строке, при передаче запроса он все равно будет декодироваться?

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Вопрос по кодированию url-запроса...
« Ответ #7 : 04 Сентября 2002, 11:34:41 »
ВВЕДИТЕ СВОЕ ИМЯ , я может чуть позже напишу сюда свою прогу, так что жди.

Оффлайн APL

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 344
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.aerozone.ru
Вопрос по кодированию url-запроса...
« Ответ #8 : 04 Сентября 2002, 13:15:38 »
sub urlencode {
   my ($val) = @_;
   $val=~s/ /\\+/g;
   $val=~s/[\\x80-\\xFF]/"%".(uc(unpack(\'H2h2\', "$&")))/ge;
   return $val;
}

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Вопрос по кодированию url-запроса...
« Ответ #9 : 04 Сентября 2002, 16:31:09 »
APL, ну ты зверь...

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Вопрос по кодированию url-запроса...
« Ответ #10 : 05 Сентября 2002, 17:20:48 »
Я как то делал такую штуку, ну там брал слово (чиста кириллицей) , дклал урл?$var=компьютеры , потом брал все это с помощью param из CGI модуля. Специально ничего не кодировал. А в скрипте сравнивал $var и "компьютеры". Все было ништяк все работало. Мне честно говоря и в голову не приходило, что надо кодировать что то :).
Все болезни от нервов, только сифилис от удовольствия

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Вопрос по кодированию url-запроса...
« Ответ #11 : 05 Сентября 2002, 22:22:22 »
Цитировать
при передаче запроса он все равно будет декодироваться?

да.
При ичпользовании ЦГИ.пм прога APL не нужна.
Цитировать
Мне честно говоря и в голову не приходило, что надо кодировать что то

И мне тоже:-).
Хоть я и стараюсь передавать англицкими буквами, но иногда использую русские, пока всё работало, так что не грузись:-).
Ну к чему все это, лучше бы водки выпили...

ВВЕДИТЕ СВОЕ ИМЯ

  • Гость
Вопрос по кодированию url-запроса...
« Ответ #12 : 09 Сентября 2002, 08:33:10 »
to APL: сэнкс... вроде нормально работает.

to glebushka: причем тут CGI.pm если мне надо просто ссылку на странице вывести. А представь если в этой переменной иногда будут пробелы встречаться на сколько корректно будет работать? Тоже самое, что данную строку набрать в адресной строке в браузере...

ВВЕДИТЕ СВОЕ ИМЯ

  • Гость
Вопрос по кодированию url-запроса...
« Ответ #13 : 09 Сентября 2002, 10:45:41 »
sub urlencode {
my ($val) = @_;
$val=~s/([^a-zA-Z0-9.*_ @-])/sprintf "%%%lx", ord($1)/eg;
$val=~s/ /\\+/g;
return $val;
}

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28