Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > найти данные, переданные POST'ом


Автор: IvyDaemon 28.5.2006, 09:11
Начну по порядку: я использую метод парсинга страниц cgi-скриптом. Работает так: на сервере лежат файлы .html, которые вызывает пользователь. Апач реагирует на запрос тем, что исполняет мой скрипт:
Код

AddHandler parsed-html .html
Action parsed-html /kernell.cgi

Это .htaccess. Скрипт парсит их и т.п. Грабли вот в чём: если я таким образом стану передавать данные, то в итоге получается вот что: метод GET работает вполне сносно (ещё б ему не работать, это же строка запроса, она по-любому быть должна). А вот если метод POST, то данных нет, STDIN пустой.  

И вот я что подумал: я же парсю страничку как бы "с нуля", получается.. (или не так? объясните, пожауйста, как) т.е. даже если данные передавались ей, но в даннм случае я уже влезаю в неё со стороны, поэтому данных и быть не может... Это с одной стороны, но, и тут ещё одни грабли: меня смущает тот факт, что всё работает на локалхосте! У меня апач 1.3.4 и перл 5.8.7_813 ... так вот ... тут мысль: может апач это всё как-то кеширует или есть способ просто забраться в переданные POST'ом данные страничке .html? Помогите, пожалуйста... 

Автор: Кнером 28.5.2006, 15:00
Цитата
  $query = '';
  if(defined($ENV{'REQUEST_METHOD'}) && $ENV{'REQUEST_METHOD'} eq 'GET')
  {
    $query=$ENV{'QUERY_STRING'};
  }
  elsif(defined($ENV{'REQUEST_METHOD'}) && $ENV{'REQUEST_METHOD'} eq 'POST')
  {
    sysread(STDIN, $query, $ENV{'CONTENT_LENGTH'});
  }


Добавлено @ 15:04 
IvyDaemon, надеюсь я правильно тебя понял. 

Автор: IvyDaemon 28.5.2006, 15:40
э.. а чем это отличается вот от этого: (в принципе)
Код

my $query = $cgi->param('field1');

По-моему, ничем? Это-то работает, но на локалхосте.. Траблз-то вот в чём: на хосте под Юних STDIN пустой, т.е. данные не вынимаются ... скорее всего их нет просто.. Но раз на локалхосте работает, значит можно что-то сделать? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)