United States [change]     Home
 
 
What's New
#!/usr/local/bin/perl $directory = $0; $directory =~ s#/[^/]*$##; $program = $0; $program =~ s#^.*/##; $directory="." if ($directory eq $program); unshift(@INC, $directory); print "Content-type: text/html\n\n"; #$formdata=; $formdata=$ENV{'QUERY_STRING'}; $formdata=~s/\s+$//; LOOP: foreach(split(/&/,$formdata)) { ($name, $value)=split(/=/, $_); $name=~s/\+/ /g; $name=~s/%([0-9|A-F]{2})/pack(C,hex($1))/eg; $value=~s/\+/ /g; $value=~s/%([0-9|A-F]{2})/pack(C,hex($1))/eg; if ($name=~/^\d+$/ || $name eq "all") { if ($value eq "") { next LOOP; } $value=~s/^\s+//; $value=~s/\s+$//; $hidden.="\n"; if ($data{$name} eq "") { $data{$name}=$value; } else { if ($options{$name}<4) { $data{$name}.=", $value"; } elsif ($options{$name}==7) { $data{$name}.="-$value"; } } } elsif ($name=~/^\d+_option$/) { ($opt, $dm)=split(/_/, $name); $options{$opt}=$value; $hidden.="\n"; } else { ${$name}=$value; if ($name ne "start") { $hidden.="\n"; } } } $output_number=$output_number || 10; $start=$start || 0; require "setup.pl"; foreach (keys(%data)) { undef ($local_command); if ($_ eq "all") { @input=split(/\s*,\s*/, $data{$_}); foreach $input (@input) { $local_command.=" || (\$data[\$a] =~/\\b$input\\b/i)"; } $local_command=~s/^ \|\| //; $command.=" && ($local_command)"; next; } $option=$options{$_}; if ($option<=4) { @input=split(/\s*,\s*/, $data{$_}); } else { @input=($data{$_}); } foreach $input (@input) { &local_command; } $command.=" && ($local_command)"; } $command=~s/^ && //; if ($command eq "") { $command=1; } # matching $count=0; $file="$root/$file"; unless (open (FILE, $file)) { print "Cannot open $file"; exit; } $/=$r_sep; @data=; close FILE; LOOP1: for ($a=$start; $a<@data; $a++) { $data[$a]=~s/$r_sep$//; if ($quotes eq "on") { # put quotes around empty fields $data[$a]=~s/,,/,"",/g; $data[$a]=~s/,,/,"",/g; $data[$a]=~s/^,/"",/; $data[$a]=~s/,$/,""/; $data[$a]=~s/\@/\\@/g; eval ("\@fields=($data[$a]);"); if ($@ ne "") { print "Error evaluating record number $a
"; print "Record is $data[$a]
"; print "Error is $@
"; exit; } } else { @fields=split(/$f_sep/, $data[$a]); } if (eval($command)) { $count++; if ($count==1) { &print_template; } if ($count<=$output_number) { $line=$record; if ($f_price ne "") { $fields[$f_price]=&display_price($fields[$f_price]); } $line=~s/!(\d+)!/$fields[$1]/g; $line=~s/([^<]+)<\/a>/$1/gi; $line=~s/]*>//ig; print $line; } elsif ($count==$output_number+1) { &print_bottom; last LOOP1; } } } if ($count==0) { unless (open (NO, "$root/nomatch.htm")) { print "Cannot open file $root/nomatch.htm"; exit; } print (); } elsif ($count<=$output_number) { &print_bottom; } if ($log==1 && $start==0) { @numbers=sort numbers (keys(%data)); for ($i=0; $i<=$numbers[@numbers-1]; $i++) { $entry.="\"$data{$i}\","; } $entry=~s/,$/\n/; open (LOG, ">>$root/log.txt"); chmod (0666, "$root/log.txt"); print LOG $entry; close LOG; } sub print_template { $template="$root/$outtemp"; unless (open (TEMPL, $template)) { print "Cannot open $template"; exit; } undef ($/); $templ=; close TEMPL; ($top, $record, $bottom)=split(//, $templ); print $top; } sub print_bottom { ($part1, $part2)=split(/!np!/, $bottom); # print "
\n"; # print $hidden; # print "\n"; # print "
\n"; print $part1; # if ($start != 0) # { # print "
$previous\n"; # } # if ($count==$output_number+1) # { # print "$next\n"; # } print $part2; } sub numbers { if ($a>$b) { $retval=1; } elsif ($a==$b) { $retval=0; } else { $retval=-1; } $retval; } sub local_command { if ($option>3) { $input=~s/[^\d\.-]+//g; } if ($option==1 || $option==4) { $local_command.=" || (\$fields[$_] eq \"$input\")"; } elsif ($option==2) { $local_command.=" || (\$fields[$_]=~/^$input\$/i)"; } elsif ($option==3) { $local_command.=" || (\$fields[$_]=~/\\b$input\\b/i)"; } elsif ($option==5) { $local_command.=" || (\$fields[$_]>=$input)"; } elsif ($option==6) { $local_command.=" || (\$fields[$_]<=$input)"; } elsif ($option==7) { ($min, $max)=split(/\s*-\s*/, $input); $min=~s/[^\d\.]+//g; $max=~s/[^\d\.]+//g; $local_command.=" || (\$fields[$_]>=$min) && (\$fields[$_]<=$max)"; } $local_command=~s/^ \|\| //; } sub display_price { local($price)=@_; ($dollars, $cents)=split(/\./, $price); if ($cents=~/^(\d{2})(\d)/) { $cents=$1; if ($2>5) { $cents++; } if ($cents==100) { $dollars++; $cents="00"; } } if ($cents=~/^\d$/) { $cents=$&."0"; } elsif ($cents eq "") { $cents="00"; } $price=$dollars.".$cents"; return $price; }
 
1-800-366-3891 (North America Only) | 1-952-917-3000
Copyright © 2010 ADC. All rights reserved. Contact ADC | Site Map | Privacy | Terms of Use | Terms of Sale