Forum Webscript.Ru

Программирование => Perl => Тема начата: jsf77 от 17 Ноября 2005, 00:39:43

Название: Как предать параметры в perl-скрипт
Отправлено: jsf77 от 17 Ноября 2005, 00:39:43
Как предать параметры в perl-скрипт с помощью тега
Знаю что есть что-то типа:
ссылка
Но в таком виде не получается, как правильно передать в скрипт klien=10 и res=sea ?
Тег
не подойдет
Название: Как предать параметры в perl-скрипт
Отправлено: Phoinix от 17 Ноября 2005, 03:22:56
jsf77

ссылка

Где ты столько кавычек-то видел?
Название: Как предать параметры в perl-скрипт
Отправлено: Nudlok от 19 Ноября 2005, 03:58:35
Я часто вижу ссылки типа http://www.domain.ru/some/?a=b

каков же здесь механизм передачи параметров ..?
Название: Как предать параметры в perl-скрипт
Отправлено: Kannabismus от 19 Ноября 2005, 05:28:37
Это либо mod_rewrite, либо собственный handler (PerlResponseHandler).

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


Название: Как предать параметры в perl-скрипт
Отправлено: Phoinix от 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
Название: Как предать параметры в perl-скрипт
Отправлено: Kannabismus от 19 Ноября 2005, 17:44:07
1. Как по вашему этот простой QUERY_STRING заворачивается в скрипт? Вопрос был каков механизм передачи параметров, а не что это такое.

2. Как было сказано, правильным такое написание будет в html, хотя и так понятно, что тег В HTML символ & имеет специальное значение (начинает спецсимвол), что вам и так прекрасно известно. В связи с этим спецификация предусматривает обязательную замену & на & или &.
http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2
Название: Как предать параметры в perl-скрипт
Отправлено: Nudlok от 21 Ноября 2005, 12:15:23
возможно это простой jawa-script который парсит URL и изменяет его
например
http://domain.com/some/ - это http://domain.com/cgi-bin/some.cgi
ну это только мои предположения
Название: Как предать параметры в perl-скрипт
Отправлено: Phoinix от 21 Ноября 2005, 12:42:01
Kannabismus
Цитировать
В HTML символ & имеет специальное значение (начинает спецсимвол), что вам и так прекрасно известно.

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

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

Просто так и заворачивается... как параметры переданные GET
Название: Как предать параметры в perl-скрипт
Отправлено: hanslinger от 21 Ноября 2005, 13:28:21
Phoinix
Насчет & он прав. Браузер преобразовывает его в "&" при передаче в URI.
Название: Как предать параметры в perl-скрипт
Отправлено: AnnA от 21 Ноября 2005, 14:42:32
jsf77:
так и пишите:
ссылка
или, учитывая вышенаписанное (по теме и нет) можно написать так:
ссылка


use CGI qw(-newstyle_urls);

my $q=new CGI;

print $q->header(),\'

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

Название: Как предать параметры в perl-скрипт
Отправлено: AnnA от 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
Название: Как предать параметры в perl-скрипт
Отправлено: NeoNox от 21 Ноября 2005, 15:06:35
Цитировать
Nudlok:
Я часто вижу ссылки типа http://www.domain.ru/some/?a=b

В апаче
DirectoryIndex index.cgi
вызов скрипта /?pass=qwerty будет передан параметр pass в index.cgi
Название: Как предать параметры в perl-скрипт
Отправлено: jsf77 от 21 Ноября 2005, 21:49:03
Так и пишу, из html файла все работает нормально, из перл скрипта не получается таким способом параметры передавать. А что тогда делать, если надо вместо кнопок текстовые ссылки?
Название: Как предать параметры в perl-скрипт
Отправлено: AnnA от 22 Ноября 2005, 12:02:10
jsf77
покажите код, которым вы их собираете. эти параметры.
Цитировать
jsf77:
из html файла все работает нормально, из перл скрипта не получается
Название: Как предать параметры в perl-скрипт
Отправлено: ipchains от 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;
}
Название: Как предать параметры в perl-скрипт
Отправлено: ondr от 14 Сентября 2006, 18:44:23
ipchains
немала вероятность того, что кто нибудь возьмёт данный код и использует. это может показаться проще чем чтение документаций к cpan модулям

результатом будет предельно кривой разбор параметров, т.к. скрипт не рабочий
Название: Как предать параметры в perl-скрипт
Отправлено: ipchains от 14 Сентября 2006, 19:00:35
этот скрипт, вернее эту часть я пользую уже довольно продолжительное время.
прекрасно работает.
если внимательно посмотрите на скрипт который я привел - там есть sub get_args -> вызывать надо сабу
Название: Как предать параметры в perl-скрипт
Отправлено: ondr от 14 Сентября 2006, 21:56:32
ну что же,
приведу часто используемую цитату на данном форуме: "изобретение велосипеда не преследуется по закону" ;)
Название: Как предать параметры в perl-скрипт
Отправлено: ipchains от 14 Сентября 2006, 22:07:56
Цитировать
ondr:
ну что же,
приведу часто используемую цитату на данном форуме: "изобретение велосипеда не преследуется по закону"


похоже вы решили меня преследовать ... (: