Gustl: Externe Dateien prüfen

Beitrag lesen

Hi all !

Also das ist mal mein Test-Script geworden. Vielleicht ist ja jemand so freundlich und übt ein wenig konstruktive Kritik resp. der vielen Umwege bzw. ist es noch möglich in der Eingabe zu tricksen ? Danke an alle Helfer !

Grüsse Gustl

  
#!/usr/bin/perl  
  
use CGI qw/:standard/;  
use strict;  
use CGI::Carp qw/fatalsToBrowser/;  
use Image::Size qw(imgsize);  
use LWP::Simple qw(get head);  
use LWP::UserAgent;  
  
my $ziel="http://www.";  
my $bild="http://www.";  
  
my $ausgabe; my $back; my $yachse=240; my $xachse=320; my $isize=10241;  
  
my @types=("text/html","JPG","GIF","PNG");  
my @ends=("htm","jpg","jpeg","gif","png");  
  
$ziel=lc($ziel); $bild=lc($bild); $ziel=~s/ //g; $bild=~s/ //g;  
$ziel=~s/\/+$//g; $bild=~s/\/+$//g;  
unless($ziel){$ziel="Ist leer";} unless($bild){$bild="Ist leer";}  
my $pz=$ziel; $pz=~s/(.*)\.//g; my $pb=$bild; $pb=~s/(.*)\.//g;  
  
my @ms=split(/;/,(LWP::UserAgent->new->get($ziel)->header('Content-type')));  
  
my $h_end; if($pz=~/$ends[0]/){$h_end=1;}  
my $h_typ; if($ms[0]=~/$types[0]/){$h_typ=1;}  
  
if ((head $ziel)&&($h_end)&&($h_typ))  
{  
  $ausgabe="Deine URI: <font color=blue>Ist erreichbar und wurde akzeptiert</font><br><br>";  
}  
  else  
{  
  $back=1;  
  $ausgabe="<font color=red>Deine URI entspricht nicht den Vorgaben oder ist nicht erreichbar</font><br><br>  
  Eingabe: <font color=red>$ziel</font><br><br>";  
}  
  
my $img=get $bild; my ($x,$y,$type)=imgsize \$img; my $size=length $img;  
  
my $i_end; if(($pb=~/$ends[1]/)||($pb=~/$ends[2]/)||($pb=~/$ends[3]/)||($pb=~/$ends[4]/)){$i_end=1;}  
my $i_typ; if(($type=~/$types[1]/)||($type=~/$types[2]/)||($type=~/$types[3]/)){$i_typ=1;}  
my $i_sp; if(($size < $isize)&&($size ne 0)){$i_sp=1;}  
my $i_ka; if(($x eq $xachse)&&($y eq $yachse)){$i_ka=1;}  
  
if ((head $bild)&&($i_end)&&($i_typ)&&($i_sp)&&($i_ka))  
{  
  $ausgabe="$ausgabe Dein Bild: <font color=blue>Ist erreichbar und wurde akzeptiert</font><br><br>";  
}  
  else  
{  
  $back=1;  
  $ausgabe="$ausgabe <font color=red>Dein Bild entspricht nicht den Vorgaben oder ist nicht erreichbar</font><br><br>";  
  
  unless((head $bild)&&($i_end)&&($i_typ))  
  {  
    $ausgabe="$ausgabe Eingabe: <font color=red>$bild</font><br><br>";  
    goto weiter;  
  }  
  
  $ausgabe="$ausgabe Eingabe: $bild<br><br>";  
  $ausgabe="$ausgabe Mime-Type: $type<br><br>";  
  
  my $kbyte=sprintf("%.3f",($size / 1024));  
  
  unless($i_sp)  
  {  
    $ausgabe="$ausgabe Grösse: <font color=red>$size in Byte ($kbyte in Kilobyte)</font><br><br>";  
    goto weiter;  
  }  
  
  $ausgabe="$ausgabe Grösse: $size in Byte ($kbyte in Kilobyte)<br><br>";  
  
  unless($i_ka)  
  {  
    $ausgabe="$ausgabe Maße Höhe/Breite: <font color=red>$y x $x in Pixel</font><br><br>";  
  }  
}  
  
weiter:  
  
if($back)  
{  
  $ausgabe="$ausgabe Das war nix. Probier was anderes";  
}  
  
print header('text/html');  
  
print "$ausgabe";  
  
unless ($back)  
{  
  print"Das war gut. Probier trotzdem was anderes";  
}