Автор Тема: Как предать параметры в perl-скрипт  (Прочитано 13162 раз)

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

Оффлайн jsf77

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как предать параметры в perl-скрипт
« : 17 Ноября 2005, 00:39:43 »
Как предать параметры в perl-скрипт с помощью тега
Знаю что есть что-то типа:
ссылка
Но в таком виде не получается, как правильно передать в скрипт klien=10 и res=sea ?
Тег не подойдет

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Как предать параметры в perl-скрипт
« Ответ #1 : 17 Ноября 2005, 03:22:56 »
jsf77

ссылка

Где ты столько кавычек-то видел?

Оффлайн Nudlok

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 32
  • +0/-0
  • 0
    • Просмотр профиля
    • http://cmp.h14.ru
Как предать параметры в perl-скрипт
« Ответ #2 : 19 Ноября 2005, 03:58:35 »
Я часто вижу ссылки типа http://www.domain.ru/some/?a=b

каков же здесь механизм передачи параметров ..?

Оффлайн Kannabismus

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как предать параметры в perl-скрипт
« Ответ #3 : 19 Ноября 2005, 05:28:37 »
Это либо mod_rewrite, либо собственный handler (PerlResponseHandler).

btw, правильным в html будет написание



Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Как предать параметры в perl-скрипт
« Ответ #4 : 19 Ноября 2005, 05:47:10 »
Я плакаль...

Kannabismus
Цитировать

Это либо mod_rewrite, либо собственный handler (PerlResponseHandler).

А я думал что это обычный QUERY_STRING

Цитировать

btw, правильным в html будет написание


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

http://www.faqs.org/rfcs/rfc1738.html
http://www.faqs.org/rfcs/rfc1808.html

Оффлайн Kannabismus

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как предать параметры в perl-скрипт
« Ответ #5 : 19 Ноября 2005, 17:44:07 »
1. Как по вашему этот простой QUERY_STRING заворачивается в скрипт? Вопрос был каков механизм передачи параметров, а не что это такое.

2. Как было сказано, правильным такое написание будет в html, хотя и так понятно, что тег В HTML символ & имеет специальное значение (начинает спецсимвол), что вам и так прекрасно известно. В связи с этим спецификация предусматривает обязательную замену & на & или &.
http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2

Оффлайн Nudlok

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 32
  • +0/-0
  • 0
    • Просмотр профиля
    • http://cmp.h14.ru
Как предать параметры в perl-скрипт
« Ответ #6 : 21 Ноября 2005, 12:15:23 »
возможно это простой jawa-script который парсит URL и изменяет его
например
http://domain.com/some/ - это http://domain.com/cgi-bin/some.cgi
ну это только мои предположения

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Как предать параметры в perl-скрипт
« Ответ #7 : 21 Ноября 2005, 12:42:01 »
Kannabismus
Цитировать
В HTML символ & имеет специальное значение (начинает спецсимвол), что вам и так прекрасно известно.

(С сарказмом) Ой... надо же... а я и не знал...
Может тогда объаснишь, "умник", значение спецсимвола & в URI

Цитировать
Как по вашему этот простой QUERY_STRING заворачивается в скрипт? Вопрос был каков механизм передачи параметров, а не что это такое

Просто так и заворачивается... как параметры переданные GET

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Как предать параметры в perl-скрипт
« Ответ #8 : 21 Ноября 2005, 13:28:21 »
Phoinix
Насчет & он прав. Браузер преобразовывает его в "&" при передаче в URI.

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как предать параметры в perl-скрипт
« Ответ #9 : 21 Ноября 2005, 14:42:32 »
jsf77:
так и пишите:
ссылка
или, учитывая вышенаписанное (по теме и нет) можно написать так:
ссылка


use CGI qw(-newstyle_urls);

my $q=new CGI;

print $q->header(),\'

\',$q->url_param(\'klien\')…;

пока-пока. :)

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как предать параметры в perl-скрипт
« Ответ #10 : 21 Ноября 2005, 14:51:23 »
Цитировать
Nudlok:
возможно это простой jawa-script который парсит URL и изменяет его

java ;)
в любом случае вы не правы. Посудите сами - js выполняется на стороне клиента, а адрес вы запрашиваете у сервера. :)
Цитировать
Nudlok:
Я часто вижу ссылки типа http://www.domain.ru/some/?a=b

слёту приходят на ум 2 решения. (наверняка их больше). или
Цитировать
Kannabismus:
mod_rewrite

или путем обычного .htaccess в корневой директории, в котором прописана DirectoryIndex cgi-bin/index.cgi
а этот самый index.cgi и обрабатывает QURY_STRING
пока-пока. :)

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как предать параметры в perl-скрипт
« Ответ #11 : 21 Ноября 2005, 15:06:35 »
Цитировать
Nudlok:
Я часто вижу ссылки типа http://www.domain.ru/some/?a=b

В апаче
DirectoryIndex index.cgi
вызов скрипта /?pass=qwerty будет передан параметр pass в index.cgi
The documentations is your friend

Оффлайн jsf77

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как предать параметры в perl-скрипт
« Ответ #12 : 21 Ноября 2005, 21:49:03 »
Так и пишу, из html файла все работает нормально, из перл скрипта не получается таким способом параметры передавать. А что тогда делать, если надо вместо кнопок текстовые ссылки?

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как предать параметры в perl-скрипт
« Ответ #13 : 22 Ноября 2005, 12:02:10 »
jsf77
покажите код, которым вы их собираете. эти параметры.
Цитировать
jsf77:
из html файла все работает нормально, из перл скрипта не получается
пока-пока. :)

Оффлайн ipchains

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ipchains.ru
Как предать параметры в perl-скрипт
« Ответ #14 : 14 Сентября 2006, 17:26:39 »
судя по всему вы не сможете слету написать свой модуль который за вас будет делать работу.
поэтому используйте:
0. use CGI;
~$ perl -mCPAN -e \'install CGI\'
~$ perldoc CGI
довольно хорошо изложено

1. mod_rewrite (rewritemap) http://cyberperl.ru/index.php?option=com_content&task=view&id=38&Itemid=1 довольно подробно и просто изложено

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

если метод GET это QUERY_STRING, если метод POST это STDIN


вопросы? perl-at-ipchains.ru
sub get_args() {
        
my(%r);
        if (
$ENV{"REQUEST_METHOD"eq "GET") {

                
$ENV{"QUERY_STRING"} =~ tr/+/ /;
                
$ENV{"QUERY_STRING"} =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge
;
                
my(@params) = split("&",$ENV{"QUERY_STRING"});
                for (
$i 0;$i scalar(@params);$i++) {
                        (
$option,$value) = split("=",$params[$i]);
                        
$r{$option}=$value;
                }
        }
        if (
$ENV{"REQUEST_METHOD"eq "POST") {
        
read(STDIN,$temp,$ENV{"CONTENT_LENGTH"});
        
$temp =~ tr/+/ /;
        
$temp =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge;
                
my(@params) = split("&",$temp);
                for (
$i 0;$i scalar(@params);$i++) {
                        (
$option,$value) = split("=",$params[$i]);
                        
$r{$option}=$value;
        }
    }
    return %
r;
}

 

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