#!/usr/bin/perl # Database Report Generator # By Brian Prentice October 1996 read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); 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; $form{$name} = $value; } $database = $form{"database"}; @header = split(/,/, $form{"headers"}); $noFields = $#header; $sortOption = $form{"sorting"}; $sortOption =~ s/(\d+)/-k$1,$1/g; $sortOption .= " -t \'\t\'"; $options = $form{"options"}; $caseSensitive = ! ($options =~ "case insensitive"); $recordNo = $options =~ "record numbers"; foreach $i (0..$noFields) { $patterns[$i] = $form{"pattern" . ($i + 1)}; $conditions[$i] = $form{"condition" . ($i + 1)}; $conditions[$i] =~ s/[vV]/\$fields\[\$i\]/g; $j = $form{"position" . ($i + 1)}; if (($j > 0) && ($j <= ($#header + 1))) { $positions[$j - 1] = $i; } } $noDisplayFields = $#positions; print "Content-type: text/html\n\n"; print "\n"; print "
No | \n"; } foreach $i (0..$noDisplayFields) { print "", $header[$positions[$i]], " | \n"; } print "
---|---|
", $rn, " | \n"; } foreach $i (0..$noDisplayFields) { print "", $fields[$positions[$i]], " | \n"; } print "