Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> http заголовки и CGI::param, проблема с точкой запятой 
:(
    Опции темы
myth777
Дата 24.12.2010, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 30.3.2009

Репутация: -1
Всего: -1



столкнулся с проблемой 

есть строка запроса
test.pl?Command=test&a=2;bb;zz

разделителем является по умолчанию знак <b>&</b>

но оказывается что ;  тоже является разделителем и модуль cgi::param его так и воспринимает, или ошибка там...

Другими словами я хочу получить a=2;bb;zz
а получаю a=2

Что делать?


PM MAIL   Вверх
myth777
  Дата 24.12.2010, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 30.3.2009

Репутация: -1
Всего: -1



 -oldstyle_urls что то не заработал как надо
 
  
Код

use CGI qw(-oldstyle_urls :all);

  for my $var ($cgi->param)
  {  
    my $val = param($var);
    print "$var=$val<br>";
  }

на строку url Command=test&a=2\;t\;b=3
выводит:
Command=test
a=2\
t\=
b=3


пипец какой то!!!
PM MAIL   Вверх
arto
Дата 25.12.2010, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



парсить вручную.
";" -- из стандарта.
PM MAIL ICQ   Вверх
myth777
Дата 25.12.2010, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 30.3.2009

Репутация: -1
Всего: -1



нет такого стандарта. Стандарт всю жизнь это амперсанд. просто разработчики cgi вдруг решили что неплохо было бы ; тоже сделать стандартом. 
Сделали бы тогда альтернативу, как текст то передавать? И нафиг мне этот модуль, если я все равно вручную буду текст обрабатывать. 
Вобщем модуль показал себя не с лучшей стороны. надо отказываться от него. 
PM MAIL   Вверх
arto
Дата 25.12.2010, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



неужели?

даже так:

неужели???
PM MAIL ICQ   Вверх
myth777
Дата 26.12.2010, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 30.3.2009

Репутация: -1
Всего: -1



Ну да вот тебе отрывок с http://yourcmc.ru/wiki

Кривой и устаревший код многих модулей для работы с разными функциями CGI. Примеры:
CGI.pm написан без использования use strict. Это не страшно, но показатель раздолбайства авторов.
В районе года 2000-ного авторам CGI.pm вдруг взбрело в голову, что век амперсанда (&) в качестве разделителя параметров в строках запроса подошёл к концу, и что теперь все будут использовать вместо него точку с запятой (;). Соответственно поведение и разбора, и генерации URL изменилось — причём, если в случае с генерацией всё легко возвращается на свои места заданием опции -oldstyle_urls, то разбор URL неизменно разбивает их и по «&», и по «;», что влечёт за собой различные неприятные эффекты.
Многие модули CGI::xx исповедуют генерацию HTML кода без использования шаблонизаторов, обычными print()'ами, на содержимое которых повлиять без влезания в сами модули невозможно. XXI век на дворе, пора бы прекратить хотя бы это — ан нет, и в 2004, и даже в 2006 годах такие модули появлялись.

Вот почитай.
http://yourcmc.ru/wiki/%D0%9F%D0%BB%D0%B0%...%BD%D0%B8%D0%B9
PM MAIL   Вверх
arto
Дата 26.12.2010, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



т.е. вы, разработчик, не знаете аббревиатуры rfc и удовольствуетесь левыми сочинениями непонятных людей? это гут.

это даже зер гут smile
PM MAIL ICQ   Вверх
myth777
Дата 26.12.2010, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 30.3.2009

Репутация: -1
Всего: -1



угу. Если ты такой умный и  http://yourcmc.ru/wiki для тебя не показатель тыкни мне на стандарт http заголовка, который признан однозначно всеми и в котором ;  является по стандарту разделителем между параметрами. Вместо того чтобы критиковать нужно описывать решение проблемы. Балоболить всегда легче чем думать головой.
PM MAIL   Вверх
Pfailed
Дата 26.12.2010, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 22
Всего: 39



myth777, не нужно быть столь категоричным в своих суждениях и считать себя умнее других. Противно же.

http://www.w3.org/TR/1999/REC-html401-1999...es.html#h-B.2.2
http://tools.ietf.org/html/rfc3986#page-22



--------------------
PM MAIL   Вверх
arto
Дата 26.12.2010, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



вы так смешно обиделись, когда вам указали на ваш пробел в образовани... ладно, не будет о грустном.

rfc 1738 от 1994 года, раздел "3.3. HTTP".

   Within the <path> and <searchpart> components, "/", ";", "?" are
   reserved.  The "/" character may be used within HTTP to designate a
   hierarchical structure.

ну и можно тут проконсультироваться: http://en.wikipedia.org/wiki/Query_string
PM MAIL ICQ   Вверх
myth777
Дата 26.12.2010, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 30.3.2009

Репутация: -1
Всего: -1



Бред какой то. Мне для того чтобы считать параметр придется либо экранировать спец символом на входе и считывать на выходе + отказаться от cgi::param. 
Очень замечательные стандарты.

PM MAIL   Вверх
myth777
Дата 26.12.2010, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 30.3.2009

Репутация: -1
Всего: -1



можно закрывать тему. При формировании запроса я тупо  заменил символ ; на его ascii код.
Спасибо умники за "помощь". CGI модуль показал себя не с лучшей стороны, надо слезать с него.
PM MAIL   Вверх
arto
Дата 26.12.2010, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



создавайте свой интернет.
PM MAIL ICQ   Вверх
myth777
Дата 27.12.2010, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 30.3.2009

Репутация: -1
Всего: -1



не умничай
лучше бы ответы дельные давал, а то только критиковать. Форум для этого и нужен чтобы спрашивать, отвечать и обсуждать. Но не критиковать, хамить и унижать. Кто вас воспитывал только.

Это сообщение отредактировал(а) myth777 - 27.12.2010, 13:38
PM MAIL   Вверх
arto
Дата 27.12.2010, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



вам и рассказали, почему не работает, указали на стандарты, которые релеванты ситуации, а вы недовольны.
поэтому только и остается веселиться за ваш счет.

а у ж фраза "CGI модуль показал себя не с лучшей стороны, надо слезать с него. " достойна быть занесена в фортунки smile
PM MAIL ICQ   Вверх
steyraug
Дата 27.12.2010, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 22.8.2010

Репутация: нет
Всего: нет



Цитата

Кто вас воспитывал только.


Те же, кто и тебя, о интеллигентнейший из интеллигентнейших smile
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1022 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.