Страница 1 из 1

[PERL] как работать с данными POST

Добавлено: 2010-02-18 13:20:22
Alex Keda
сабж. ни одного примера не нашёл.
может как-то неправильно ищщу?

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 13:29:40
hizel
бедный деный Лис

Код: Выделить всё

use CGI qw/:standard/;

if(request_method() eq 'POST'){
  $comment = param('field_comment') if(param('field_comment') && length(param('field_comment')) < 100);
  ....
}
кстате

Код: Выделить всё

perldoc CGI

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 13:56:05
Alex Keda
хорошо.
а как сделать то что в php одной строкой:

Код: Выделить всё

var_dump($_POST)
? ибо я не знаю как будет называться параметр...

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 14:28:12
hizel
не будь лапшой позырь perldoc CGI
FETCHING A LIST OF KEYWORDS FROM THE QUERY:
@keywords = $query->keywords

If the script was invoked as the result of an <ISINDEX> search, the parsed keywords can be obtained as an array using the keywords() method.

FETCHING THE NAMES OF ALL THE PARAMETERS PASSED TO YOUR SCRIPT:
@names = $query->param

If the script was invoked with a parameter list (e.g. "name1=value1&name2=value2&name3=value3"), the param() method will return the parameter names as a list. If
the script was invoked as an <ISINDEX> script and contains a string without ampersands (e.g. "value1+value2+value3") , there will be a single parameter named
"keywords" containing the "+"-delimited keywords.

NOTE: As of version 1.5, the array of parameter names returned will be in the same order as they were submitted by the browser. Usually this order is the same as
the order in which the parameters are defined in the form (however, this isn't part of the spec, and so isn't guaranteed).

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 14:29:36
hizel
если у тебя микс GET и POST
MIXING POST AND URL PARAMETERS
$color = url_param('color');

It is possible for a script to receive CGI parameters in the URL as well as in the fill-out form by creating a form that POSTs to a URL containing a query string (a
"?" mark followed by arguments). The param() method will always return the contents of the POSTed fill-out form, ignoring the URL's query string. To retrieve URL
parameters, call the url_param() method. Use it in the same way as param(). The main difference is that it allows you to read the parameters, but not set them.

Under no circumstances will the contents of the URL query string interfere with similarly-named CGI parameters in POSTed forms. If you try to mix a URL query
string with a form submitted with the GET method, the results will not be what you expect.

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 14:57:52
Alex Keda
толи лыжи не едут...

Код: Выделить всё

[Thu Feb 18 14:55:15 2010] [error] [client 195.93.241.11] Can't call method "keywords" on an undefined value at testperl.pl line 11., referer: http://doska.lissyara.su/aaa.html

[Thu Feb 18 14:56:45 2010] [error] [client 195.93.241.11] Can't call method "param" on an undefined value at testperl.pl line 12., referer: http://doska.lissyara.su/aaa.html
вот за это я и ненавижу перл.
примеры из доки не работают.
в php - все примеры всегда рабочие.

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 15:00:12
hizel
ну и пользуй пых

где твой код? я его не наблюдаю

кто-то видимо забил на четкое указание:

Код: Выделить всё

use CGI qw/:standard/;
:roll:

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 15:02:35
Alex Keda

Код: Выделить всё

hosting$ more ~lissyara/www/data/cgi-bin/testperl.pl
#!/usr/bin/perl -w
#


use CGI qw/:standard/;

print "Content-type: text/plain; charset=iso-8859-1\n\n";

if(request_method() eq 'POST'){

        #@keywords = $query->keywords;
        @names = $query->param;
        foreach $key (@names)
        {
                print "name = $key; value = " . param($key) . "\n\n";
        }

        exit;
        #$comment = param('domain');
        if(param('domain') && length(param('domain')) > 3){
                print "Content-type: text/plain; charset=iso-8859-1\n\n";
                print param('domain') . "\n";

        }
}

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 15:08:11
Alex Keda
ы-ы-ы-ы....
изыди!
или дефку эту не пихай везде хотя бы =)))

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 15:22:03
hizel
тчёрт:

Код: Выделить всё

#!/usr/bin/perl

use CGI qw/:standard/;

print header;

print '<html><head><title>post test</title></head>';

if(request_method() eq 'POST'){
  my @names = param;
  print '<body>';
  for $key (@names){
        print '<p>', $key, '=>', param($key), '</p>';
  }
  print '</body>';
}else{
  print '<body><form action="" method="post"><input type="text" name="login"><input type="submit" value="submit"></form></body>'
}

print '</html>';
 
сравни со своим

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 15:24:40
hizel
ну ты даешь

откуда у тебя в коде @names = $query->param; вылезло !?

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 15:35:28
hizel
почему в этом дурацком phpbb3 подсветка только для пыха !?

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 16:16:03
thefree
QUERY_STRING

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 17:47:42
Alex Keda
срослось, всем пасиба!

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 17:49:24
hizel
lissyara писал(а):срослось, всем пасиба!
ты написал на пэхопэ? :D

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 19:32:36
Alex Keda
нет. он плохо подходит для системного языка программирования.
жаль что на шелле POST не разберёшь, иначе скрипт так и остался бы шелловым =))

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 20:17:08
zg
lissyara писал(а):нет. он плохо подходит для системного языка программирования.
значит ты просто не умеешь его готовить :smile:
hizel писал(а):почему в этом дурацком phpbb3 подсветка только для пыха !?
потому что она встроена в пых
lissyara писал(а):жаль что на шелле POST не разберёшь
почему? http://anton-pribora.ru/cgi-bin/post.cgi

Код: Выделить всё

% cat cgi-bin/post.cgi
#!/bin/sh

echo 'Content-type: text/html'
echo

echo '<form method="POST">'
echo '  <input type="text" name="hello" value="world">'
echo '  <input type="submit" value="send">'
echo '</form>'

echo '<pre>POST-data'
cat
echo '</pre>'
:unknown: разбирай не хочу

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 20:27:08
hizel
пэхапэшники такие пэхапэшники, о безопасности думаем в последнею очередь и размазываем критические участки по всему коду, жрите пользователи : )

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 20:31:23
zg
hizel писал(а):размазываем критические участки по всему коду
например?
hizel писал(а):пэхапэшники такие пэхапэшники
эммм, где тут пхп? :smile:

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 21:03:57
ADRE
hizel писал(а):пэхапэшники такие пэхапэшники, о безопасности думаем в последнею очередь и размазываем критические участки по всему коду, жрите пользователи : )
ага... учите нас перлу =)

Re: [PERL] как работать с данными POST

Добавлено: 2010-02-18 21:51:43
hizel
zg этот наброс относился к сгенерированому Лисом коду, плохое наследство пых юнности :)