#!/usr/local/bin/perl print "Content-type: text/html\n\n"; $foot = `cat shtml/footer.html`; $head = `cat shtml/header.html`; $imagedir="../bashimg2"; chdir "$imagedir"; $reloadtime =5; $script="browser-secured.cgi"; $list = `/bin/ls -l |grep -v $script`; @listarray = split('\n',$list); $num = @listarray; $num --; if ($page > $num) {print "image error";} &parse_form; if ($FORM{page}) {$page=$FORM{page};} else {$page=1;} if ($FORM{reloadtime}) {$reloadtime=$FORM{reloadtime};} else {$reloadtime=0;} $,=' '; $line="@listarray[$page]"; ($a,$a,$a,$a,$size,$a,$a,$a,$fname) = split(' ',$line); while ($size < 1) { $line="@listarray[$page]"; ($a,$a,$a,$a,$size,$a,$a,$a,$fname) = split(' ',$line); $page ++; } $prev = $page -1; $next = $page +1; print "Whiplash Bash Page $page"; if ($reloadtime) {print "\n";} #print "$head"; #$page --; print "
"; print " "; print "Photo: "; print ""; print " "; #print " "; print "of $num \n"; #for ($i=0; $i<$num; $i++){ #if ($i eq $page) { print "$i \n";} #else {print "$i \n";} #} if ($page >1) {print "[prev]";} if ($page < $num) {print "[next]";} if ($reloadtime) {print "[pause]";} else { if ($page < $num) {print "[slideshow]";}} print "

"; print "$head"; print "$foot"; #} sub parse_form { if ($ENV{'REQUEST_METHOD'} eq 'GET') { # Split the name-value pairs @pairs = split(/&/, $ENV{'QUERY_STRING'}); } elsif ($ENV{'REQUEST_METHOD'} eq 'POST') { # Get the input read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # Split the name-value pairs @pairs = split(/&/, $buffer); } else { #&error('request_method'); } foreach $pair (@pairs) { if ($pair =~ /\|/) { print "parse error: exiting...\n"; exit; } ($name, $value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # If they try to include server side includes, erase them, so they # arent a security risk if the html gets returned. Another # security hole plugged up. $value =~ s///g; # Create two associative arrays here. One is a configuration array # which includes all fields that this form recognizes. The other # is for fields which the form does not recognize and will report # back to the user in the html return page and the e-mail message. # Also determine required fields. if ($name eq 'recipient' || $name eq 'subject' || $name eq 'email' || $name eq 'realname' || $name eq 'redirect' || $name eq 'bgcolor' || $name eq 'background' || $name eq 'link_color' || $name eq 'vlink_color' || $name eq 'text_color' || $name eq 'alink_color' || $name eq 'title' || $name eq 'sort' || $name eq 'print_config' || $name eq 'return_link_title' || $name eq 'return_link_url' && ($value)) { $CONFIG{$name} = $value; } elsif ($name eq 'required') { @required = split(/,/,$value); } elsif ($name eq 'env_report') { @env_report = split(/,/,$value); } else { if ($FORM{$name} && ($value)) { $FORM{$name} = "$FORM{$name}, $value"; } elsif ($value) { $FORM{$name} = $value; } } } }