php – bilder im verzeichnis anzeigen

fuer eine kleine spielerei musste ich ein php scriptchen basteln, dass mir bilder in einem verzeichnis anzeigt. und zwar immer nur eins und beim klick auf das bild dann das naechste. das gnaze natuerlich der reihe nach alphabetisch sortiert. in meinem fall entsprachen die dateinamen dem datum und der uhrzeit in umgekehrter reihenfolge (z.b. 201103251840), so dass eine alphabetische sortierung auch gleich dem sortieren nach datum und uhrzeit entspricht.

';
// aktuelles bild als absende button im formular
echo '';
// naechstes bild ($key+1) als uebergabeparameter 
echo '';
echo '';
// und noch ein paar sachen wie dateinamen, -groesse 
// und anzahl ausgeben
$filesize=round(filesize($pfad.'/'.$arr[$key])/1024,2);
echo 'file '.($key+1).'/'.count($arr).'
'; echo 'filename: '.$arr[$key].'
'; echo 'size: '.$filesize.' kB
'; echo '# files: '.count($arr).'
'; ?>

davor und danach nur noch standard html header und was man so alles haben will und fertig isses.

erst dachte ich… ups.. .aufpassen, dass man damit nicht x-beliebige dateien aufm webserver anzeigen kann. aber wenn man die POST header manipuliert und eine datei wie ../../../etc/passwd aufrufen will, wird die nicht angezeigt, da sie nicht in dem dem array mit den dateien im aktuellen verzeichnis steht. faellt sonst noch jemandem ein hack dazu ein?

UPDATE: danke schonmal an roland fuer den tip mit den dateiendungen in den kommentaren. das kann jeder nach belieben einbauen. ich habe hier aber noch ein schmankerl. naemlich einfach beim laden der seite die naechsten beiden bilder “vorladen” und nur nicht anzeigen lassen. das hat den charme, dass beim klick auf das naechste bild dieses sofort und ohne wartezeit erscheint. hier der code dazu, den man natuerlich einfach erweitern kann, damit noch mehr bilder vorgeladen werden um das “durchklicken” fluessiger zu machen:

echo '';
echo '';

hab ich hier gefunden: http://www.flexib.de/grafiken-vorladen-html-css-javascript/

Author: sd

2 thoughts on “php – bilder im verzeichnis anzeigen

  1. Hm, also Bilder haben ja immer eine gewisse Dateiendung, im Regelfall ist das .jpg bzw. .png. Ich würde nur die Bilddateien auflisten lassen, das ist am sichersten und Du brauchst $ausnahme auch nicht.

    Gruß,
    Roland

  2. auch ne moeglichkeit.
    koennte man so machen, in dem man das:
    $datei!=$ausnahme
    z.b. gegen das ersetzt:
    (substr(strtolower($datei), -3)==”gif”)
    und die dateiendung entsprechend setzt.
    dann kann man die zeile:
    $ausnahme = “index.php”;
    ..weglassen

Leave a Reply

Your email address will not be published. Required fields are marked *