perl.dp.ua

Наипростейшим скриптом(после "Hello World!") является скрипт, который получает данные формы и обрабатывает их.

Предположим что вы разобрались, как организовать форму (со стороны HTML). Предположим, что форма заполнена и нажата кнопка "Submit", то есть данные пошли на обработку скрипту. Теперь становится понятным, что, собственно, требуется от скрипта.

Итак, в скрипт входят данные, закодированные urlencode и находящиеся в переменной QUERY_STRING либо подаваемые на STDIN. Во-первых, мы должны их(данные) получить. Для этого выполним следующее:

 if ($ENV{'REQUEST_METHOD'} eq 'GET'){#Анализируем метод, GET или POST
   $buffer=$ENV{'QUERY_STRING'};
   }
 elsif ($ENV{'REQUEST_METHOD'} eq 'POST'){
 read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
   }
Мы считали данные в переменную $buffer. Теперь необходимо обработать эту сроку. Зная, что поля разделены символом "&", будем использовать его в качестве разделителя функции split.
 @pairs = split(/&/, $buffer);
Теперь организуем цикл по новообразованному масиву @pairs и, декодировав запрос, создадим хэш вида $hash{имя}=значение, коим будет являться %input.
 foreach $pair (@pairs) {
  ($name, $value) = split(/=/, $pair);
  $value =~ tr/+/ /;#Декодирование запроса
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  $value =~ s///g;
  $input{$name} = $value;#Заполнение хэша
}
А теперь поместив данные запроса в хэш %input, можно делать с ними всё, что вашей душе угодно.

Реклама




Яндекс цитирования