[php] Directory listing probleem

Pagina: 1
Acties:

  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54
Ik heb het volgende script:
PHP:
1
<?function overzicht($dir){        if($map = opendir($dir))        {            while($bestand = readdir($map))            {                if(is_dir($bestand))                    {                            $mappenlijst[] = $bestand;                        }                        elseif(is_file($bestand))                        {                            $bestandenlijst[] = $bestand;                        }                        else                        {                            $bestandenlijst[] = $bestand;                        }                }        }        else        {            //foutmelding//        }                closedir();        clearstatcache();        echo "<table cellpadding='0' cellspacing='0' width='690' class='pagina'>\n<tr><td width='20'></td>\n<td width='100'><b>naam</b></td>\n<td width='100'><b>grootte</b></td>\n<td width='175'><b>laatste wijziging</b></td>\n<td>&amp;nbsp;$adres</td></tr>\n<tr height='5'><td></td></tr>\n";                if($mappenlijst)        {            #asort($mappenlijst);                while(list(,$map) = each($mappenlijst))                {                    if($map == '.' || $map == '..') continue;                        echo "<tr><td>[img]'images/folder.gif'></td><td>$map</td><td></td><td></td><td></td></tr><tr[/img]<td></td></tr>\n";              }        }        if($bestandenlijst)        {            #asort($bestandenlijst);                while(list(,$bestand) = each($bestandenlijst))                {                    echo "<tr><td>[img]'images/file.gif'></td><td>".$bestand."</td><td>".bestandsgrootte($bestand)."</td><td>".date("d-m-Y[/img]<td></td></tr><tr height='2'><td></td></tr>\n";                }        }        echo "</table>";}include('begin.php');overzicht($DOCUMENT_ROOT);include('eind.php');?>

Hiermee wil ik dus door mijn mappen kunnen browsen.
Als het goed is zou ik dus de bestanden uit de root van mijn domein te zien krijgen, met de naam, bestandsgrootte (die functie doet er nu volgens mij niet toe) en de wijzigingsdatum. Maar wat krijg ik terug: ik krijg de bestanden uit de map van dit script terug (uit de map /blaat/modules/browse/) met naam, bestandsgrootte en datum, en uit de root alleen de naam. Bestandsgrootte en datum zie ik niet.

Hoe kan het dat ik uit de root de extra info niet zie, en dat de bestanden uit /blaat/modules/browse/ ook te zien krijg? (en dan die wel met extra info)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 18:21
Op zondag 26 mei 2002 16:54 schreef cREATiVe8500 het volgende:
Hoe kan het dat ik uit de root de extra info niet zie, en dat de bestanden uit /blaat/modules/browse/ ook te zien krijg? (en dan die wel met extra info)
Een typisch geval van niet gedebugged. De bestandsnamen die door de directory functies worden opgeleverd zijn relatief. Als je er dus filesystem functies op wil toepassen, moeten ze toevallig in de huidige werkdirectory staan of je moet de directory ervoor zetten. Dat had je zelf kunnen verzinnen natuurlijk.

Hoe het komt dat je de bestanden uit de huidige directory ook te zien krijgt weet ik niet, maar aangezien je de eerste keer gefaald hebt, krijg je nu een herkansing om je code te debuggen.

  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54
Op zondag 26 mei 2002 17:35 schreef Soultaker het volgende:

[..]

Een typisch geval van niet gedebugged. De bestandsnamen die door de directory functies worden opgeleverd zijn relatief. Als je er dus filesystem functies op wil toepassen, moeten ze toevallig in de huidige werkdirectory staan of je moet de directory ervoor zetten. Dat had je zelf kunnen verzinnen natuurlijk. Dat dacht ik ook ja, maar ik kreeg de filenames wel te zien, dus ik snapte het toen niet meer :(

Hoe het komt dat je de bestanden uit de huidige directory ook te zien krijgt weet ik niet, maar aangezien je de eerste keer gefaald hebt, krijg je nu een herkansing om je code te debuggen. Hartelijk dank voor uw goedheid! Afbeeldingslocatie: http://sassiessite.endoria.net/images/Smilies/worshippy.gif
:)

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 12:14
tis trouwens wel veel code :{
En door lange regels niet echt leesbaar :{

Verwijderd

post die geniale code maar!

Verwijderd

easy...

if ( $map = opendir($dir) )
{
while ( $bestand = readdir($map) )

MOET ZIJN:

if ( $map == opendir($dir) )
{
while ( $bestand == readdir($map) )

Klassieke fout :)))))

  • _-= Erikje =-_
  • Registratie: Maart 2000
  • Laatst online: 08:54
Op maandag 27 mei 2002 10:24 schreef fraggel75 het volgende:
easy...

if ( $map = opendir($dir) )
{
while ( $bestand = readdir($map) )

MOET ZIJN:

if ( $map == opendir($dir) )
{
while ( $bestand == readdir($map) )

Klassieke fout :)))))
Van jou jah :)

Dit zijn geen vergelijkingen, maar testen of de toewijzing van bv $bestand wel lukt, dus als $map geen dir is gaat opendir($map) fout en stopt het script dus op dat punt en gaat dan niet onzinnig door....

Verwijderd

bok! Ja, iets te snel gelezen :)

  • _-= Erikje =-_
  • Registratie: Maart 2000
  • Laatst online: 08:54
Foei :P

  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54
Aaargh!!! Sukkel die ik ben (ja idd nogal een kickje)
code:
1
2
3
4
5
bestandsgrootte($bestand)

moest zijn:

bestandsgrootte($dir.$bestand)

:Z thanks anyway :P

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

realpath (), ook handig :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1