[PHP] Ordner und Dateien auslesen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von YOOUI, 15. Januar 2012 .

  1. 15. Januar 2012
    Ordner und Dateien auslesen

    Als erstes vielen Dank, dass du diesen Thread liest.
    Mein Problem ist, dass ich mir mit meinem Script
    alle Dateien und Ordner anzeigen lassen will die in einem Verzeichnis sind, und wenn man auf den Link Klickt soll in das Unterverzeichnis gewechselt werden.
    Und genau da liegt das Problem, das wenn in das Unterverzeichnis gewechselt werden soll geht das erstens ned, und wenn ich in dem Unterverzeichnis bin werden die Dateien nur Teilweise und die Ordner gar nicht angezeigt.
    Spoiler
    PHP:
    <? php
    if(!isset( $_GET [ 'pfad' ]))
    {

    $handle  opendir ( $_SERVER [ 'DOCUMENT_ROOT' ]);
    $dir  $_SERVER [ 'DOCUMENT_ROOT' ];
    }
    else
    {
    $dir  $_GET [ 'pfad' ];
    $handle  opendir ( $dir );
    $dir  $_SERVER [ 'DOCUMENT_ROOT' ]. "/" . $_GET [ 'pfad' ];
    }

    $dateien  = array();
    $verzeichnisse  = array();
    while(
    false  !== ( $file  readdir ( $handle )))
    {
        if(
    is_file ( $file ))
        {

            
    $dateien [ $file ] =  $file ;


        }
        if(
    is_dir ( $file ))
        {
            
    $verzeichnisse [ $file ] =  $file ;

        }
    }
    asort ( $dateien );
    asort ( $verzeichnisse );

    echo 
    "Dateien: <br>" ;
    foreach(
    $dateien  as  $file )
    {
        echo 
    "<a href='editor.php?pfad= $dir$file '>" . $file . "</a><br>" ;
    }
    echo 
    "<hr>Ordner: <br>" ;
    foreach(
    $verzeichnisse  as  $file )
    {
        echo 
    "<a href='test.php?pfad= $dir / $file '>" . $file . "</a><br>" ;
    }

    Mit freundlichen Grüßen,

    YOOUI
     
  2. 15. Januar 2012
    AW: Ordner und Dateien auslesen

    wat?

    vielleicht liegts daran, dass du immer wieder DOCUMENT_ROOT voranstellst:

    PHP:
    $dir  $_SERVER [ 'DOCUMENT_ROOT' ]. "/" . $_GET [ 'pfad' ];  // <-- zonk! 
    zudem ist es möglich mit dem script den kompletten server aufzulisten.

    PHP:
    $dir  $_GET [ 'pfad' ];  // ../../../../home/pr0n
    $handle  opendir ( $dir );  // dä dä dääämmmm!
    PHP:
    $dir  realpath ( $_GET [ 'pfad' ]);

    $root  $_SERVER [ 'DOCUMENT_ROOT' ];
    if (!
    $dir  ||  substr ( $dir 0 strlen ( $root )) !==  $root )
      exit(
    "nope" );

    $handle  opendir ( $dir );
     
  3. 15. Januar 2012
    AW: Ordner und Dateien auslesen

    Hi Murdoc,

    sorry war ein bischen zu schnell geschreiben.

    Das Ziel von dem Script soll sein einem Anderen Script (editor.php) einen Dateipfad zu übergeben, durch den der Editor die Datei einlädt --> Auf der ersten Seite (also in keinem Unterverzeichnis) funktioniert das auch einwandfrei doch in den Unterverzeichnissen funktioniert gar nihcts mehr.

    Mit freundlichen Grüßen,

    YOOUI

    -----

    @Murdoc
    Leider verstehe ich deinen Gedankengang ned...
    Hab zwar jetzt die if...else Schleife durch deinen Code:
    ersetzt. Aber es hat sich GAR NICHTS verändert

    LG

    YOOUI
     
  4. 15. Januar 2012
    AW: Ordner und Dateien auslesen

    http://www.if-schleife.de/

    PHP:
    <? php

    namespace  rr ;

    define ( 'rr\WWW_ROOT' getcwd ());

    $dir_abs  WWW_ROOT ;
    $dir_rel  '' ;

    if (isset(
    $_GET [ 'pfad' ])) {
      
    $dir_abs  realpath ( WWW_ROOT  '/'  $_GET [ 'pfad' ]);
      
    $dir_len  strlen ( WWW_ROOT );
      
      if (!
    $dir_abs  ||  substr ( $dir_abs 0 $dir_len ) !==  WWW_ROOT )
        exit(
    "nope" );
        
      
    $dir_rel  substr ( $dir_abs $dir_len  1 ) .  DIRECTORY_SEPARATOR ;
    }

    if (
    $dir_rel [ 0 ] ===  DIRECTORY_SEPARATOR )
      
    $dir_rel  substr ( $dir_rel 1 );

    $files    = array();
    $folders  = array();

    foreach (
    scandir ( $dir_abs ) as  $f ) {
      
    $stack  is_dir ( $dir_abs  DIRECTORY_SEPARATOR  $f ) ?  'folders'  'files' ;
      
    array_push ($ $stack $f );
    }
      
    asort ( $files );
    asort ( $folders );

    print 
    'Dateien: <br />' ;
    list_files ( 'editor.php' $dir_rel $files );

    print 
    'Verzeichnisse: <br />' ;
    list_files ( 'folder.php' $dir_rel $folders );

    // ----------------

    function  list_files ( $script $dir_rel , array & $files ) {
      print 
    '<ul>' ;
      
      foreach (
    $files  as  $file )
        print 
    '<li><a href="'  $script  '?pfad=' 
          
    $dir_rel  $file  '">'  $file  '</a></li>' ;
          
      print 
    '</ul>' ;
    }
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.