Hi...
ich habe mir eine schöne CGI-Liste entworfen, die eine Dateianzeige ermöglicht, siehe jetzt folgendes Beispiel:
----------------------------------------------------------------
#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser);
use HTML::Parser;
use HTML::Entities;
print "Content-type: text/html\n\n<html><body>";
if($ENV{'REQUEST_METHOD'} eq "GET")
{
$Daten = $ENV{'QUERY_STRING'};
}
else
{
read(STDIN, $Daten, $ENV{'CONTENT_LENGTH'});
}
@Formularfelder = split(/&/, $Daten);
foreach $Feld (@Formularfelder)
{
($name, $value) = split(/=/, $Feld);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
$FORM{$name} = $value;
}
if($FORM{'Dir'} eq "") { $Sdirectory = "h:/www/html"; }
else { $Sdirectory = "$FORM{'Dir'}"; }
$Udirectory = '';
my (@files) = ();
my (@URL) = ();
opendir (DIR, $Sdirectory) or die ("ERROR!!!");
foreach my $file (readdir(DIR))
{
next if /^.{1}$/;
push (@files, $Sdirectory."/".$file)
unless -d ($Sdirectory."/".$file);
push (@URL, $UDirectory."/".$file)
unless -d ($UDirectory."/".$file);
}
print ("<TABLE>");
for($i=0;$i<@files;$i++)
{
print "<tr><td><a href="",$URL[$i],"" target="_new">",$files[$i],"</a></td></tr>";
}
print ("</TABLE>");
print ("</body></html>");
----------------------------------------------------------------
So, diese Liste ermöglicht einem das Ausgeben aller Dateien auf einem Server. Dummerweise ermöglicht sie nicht das Auslesen der Verzeichnisse, so zeigt sie der Person diese nicht an.
Könntet ihr mir meinen kleinen Patzer korrigieren?
CU
Juli
P.S.: Ich habe die vollständige Datei ausgegeben, damit alle die Interesse haben, sich holen können. Ich werde auch, wenn ihr wollt die fertige Datei hier "veröffentlichen" (bloß ohne Änderungen im Styling, das macht ihr dann selber).