Hallo,
ich arbeite gerade an einem Galeriescript, das die Ordner eines Verzeichnisses ausliest und anschließend die Bilder.
Also kann man sich praktisch innerhalb eines Verzeichnisses durch mehrere "Ordner-Ebenen" bewegen und von jedem Ordner die Bilder betrachten.
Das funktioniert alles wunderbar. Ich übertrage einfach den Ordner per URL ($_GET)...
Nun möchte ich, dass man wieder auf die Ebene drüber gelangen kann. Ein Beispiel:
Aktueller Ordner: images/Gallery
Klick auf 'ordner2' => Aktueller Ordner: 'images/Gallery/ordner2'
Klick auf 'zurück' => Aktueller Ordner: 'images/Gallery'
Wenn ich an die URL einfach '/..' hinten ranhänge, dann habe ich das Problem, dass man durch einen Klick auf "Zurück" in den Ordner 'images' und von da wieder eins höher, etc. gelangt.
Nun 2 Fragen:
1. Gibt es eine Funktion, die mir den übergeordneten aus einem String rausliest? Also String wäre 'images/Gallery/ordner2' und er gibt mir 'images/Gallery' zurück?
2. Wie kann ich ausschließen, dass man per URL-Manipulation ('/..') durch sämtliche Verzeichnisse browsen kann?
Hier der Code:
Danke schonmal im Vorraus!
Macks
ich arbeite gerade an einem Galeriescript, das die Ordner eines Verzeichnisses ausliest und anschließend die Bilder.
Also kann man sich praktisch innerhalb eines Verzeichnisses durch mehrere "Ordner-Ebenen" bewegen und von jedem Ordner die Bilder betrachten.
Das funktioniert alles wunderbar. Ich übertrage einfach den Ordner per URL ($_GET)...
Nun möchte ich, dass man wieder auf die Ebene drüber gelangen kann. Ein Beispiel:
Aktueller Ordner: images/Gallery
Klick auf 'ordner2' => Aktueller Ordner: 'images/Gallery/ordner2'
Klick auf 'zurück' => Aktueller Ordner: 'images/Gallery'
Wenn ich an die URL einfach '/..' hinten ranhänge, dann habe ich das Problem, dass man durch einen Klick auf "Zurück" in den Ordner 'images' und von da wieder eins höher, etc. gelangt.
Nun 2 Fragen:
1. Gibt es eine Funktion, die mir den übergeordneten aus einem String rausliest? Also String wäre 'images/Gallery/ordner2' und er gibt mir 'images/Gallery' zurück?
2. Wie kann ich ausschließen, dass man per URL-Manipulation ('/..') durch sämtliche Verzeichnisse browsen kann?
Hier der Code:
PHP-Code:
<?php
/*#####
//COPYRIGHT 2007 BY [email]max0schmitt@aol.com[/email]
#####*/
$folder = $_GET['dir'];
$dir = './images/gallery' . $folder;
$handle = opendir($dir);
echo '$handle = ' . $handle . '<br />';
echo '$dir = ' . $dir . '<br /><br />';
echo '<b>FOLDERS:</b><br />';
while (false !== ($file = readdir($handle))) {
if (is_dir($dir . '/' . $file) && $file != '.' && $file != '..') {
echo '<img src="images/folder.gif" alt="' . $file . '" />';
echo ' <a href="index.php?nav=media&action=gallery&dir=' . $folder . '/' . $file . '">';
echo $file;
echo '</a><br />';
}
}
closedir($handle);
$handle = opendir($dir);
while (false !== ($file = readdir($handle))) {
if ($file != '.' && $file != '..' && (eregi(".jpg$", $file) || eregi(".jpeg$", $file))) {
echo '<a href="images/gallery/' . $folder . '/' . $file . '" target="_blank">';
echo '<img src="tnail.php?img=' . $folder . '/' . $file . '" alt="' . $file . '" /></a> ';;
}
}
closedir($handle);
echo '<a href="index.php?nav=media&action=gallery&dir=' . $folder . '/..">BACK</a>';
?>
Macks
Kommentar