Fehler beim Auslesen eines Verzeichnisses

ThePosterity

Aktives Mitglied
<?php
$path = '.';
if($dir=opendir($path))
{
while($file=readdir($dir))
{
if (is_file($file) && $file != "." && $file != "..")
{
$files[]=$file;
echo "<br>".$file.' erstellt am: '.date("d.m.Y - H:i", filemtime($file));
}
}
}
closedir($dir);
?>

Es funktioniert soweit ganz gut
smile.gif

nur wie man sieht Demo: http://theposterity.th.ohost.de/o.php
Ich möchte alle Datein des aktuellen verzeichnisses Auflisten !
Aber ich bekomme immer ein Fehler angezeigt ich kapiere nur nicht warum
sad.gif
 
Steht da doch, Du versucht die Sicherheitseinstellung des Server zu verletzten, darum geht das nicht!
 
Weil Du versucht aus Deinen Benutzerverzeichnis herauszugehen, darum. Vielleicht solltest Du nicht auf ".." zugreifen und den Check vor is_file() verlegen:

CODE if ($file != "." && $file != ".." && is_file($file))
 
tolle idee
wink.gif
hätte ich auch selber drauf kommen können

erst check ob nicht verzeichniss und dann is_file aufrufen
smile.gif
ist doch logisch
wo ich es mir jetzt nomal anschaue ich probie es gleich mal nach einer
denk minute
wink.gif

 
ich kapier es nicht wie ich es hinbekomme
sad.gif

so ein kleiner code schnipsel und so ein grosser ärger
sad.gif

dann auch noch die boleschen operatoren hmm
 
Bau doch bitte mal einen Zähler ein, bei welchen Schleifendurchlauf der Fehler auftritt.


Ich denke . und ./ sollten sich dabei gleich bleiben.
 
CODE
<?php

$files=array();
$dir=opendir(".");
while ($dirs=readdir($dir)) {
   if (($dirs==".") or ($dirs=="..")) continue;
   $files[]=$dirs;
   print("${dirs} erstellt am: ".date("d.m.Y - H:i", filemtime($dirs))."<br>");
   }
closedir($dir);
print("Dateien gefunden: ".count($files));


?>



Funktioniert bei mir tadellos.
Also liegt es mit Sicherheit an der Serverkonfiguration / PHP-Config.



QUOTE
(...) Ich denke . und ./ sollten sich dabei gleich bleiben. (...)


Du hast vollkommen Recht.
smile.gif

Hab ich doch glatt was verwechselt. *shame on me*
 
<?php
$path = '.';
$z=0;
if($dir=opendir($path))
{
while($file=readdir($dir))
{ if (($file != ".") && ($file != ".."))
{
$z++;
$files[]=$file;
echo "<br>Datei Nr. ".$z.$file." erstellt am: ".date("d.m.Y - H:i", filemtime($file));
}
}
}
echo "<br>Dateien gfunden= ".count($files);
closedir($dir);
?>
Bin leider zwischendurch eingeschlafen
sad.gif

Aber es klappt endlich so wie ich es wollte
smile.gif
DANKE EUCH
smile.gif


Demo: http://theposterity.th.ohost.de/index.php

ähm mal eine Frage :Wenn ich damit z.b. dateien Include (ein komlettes verzeichnis) ist das dann ein sicherheits problem irgendwie ?oder ist das problemlos ?
 
QUOTE (ThePosterity @ Sa 4.08.2007, 18:19) [...] ähm mal eine Frage :Wenn ich damit z.b. dateien Include (ein komlettes verzeichnis) ist das dann ein sicherheits problem irgendwie ?oder ist das problemlos ?

Es könnte zu einen mehr oder minderen Sicherheitsproblem führen, je nachdem wie es umgesetzt wird.
 
Zurück
Oben