rekursiv löschen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • rekursiv löschen

    Hi!

    Folgendes Prob: Bin bis jetzt auf RegisterGlobals=off gefahren und hab das nun mal umgestellt. Mein "rekursiv-löschen"-Script hat bis jetzt tadellos funktioniert, aber nun wird das gesamte Verzeichnis, und nicht nur das geforderte Unterverzeichnis gelöscht. Was ist hier falsch?

    PHP-Code:
      function removeRekursiv($dir
      { 
        
    $dp opendir($dir); 
        while(
    $file readdir($dp)) 
        { 
        
    $name $dir "/" $file;
         
          if (
    $file != "." && $file != ".."
          { 
          if (
    is_dir($name)) 
          
    removeRekursiv ($name); 
          else 
          
    unlink($name); 
          } 
        } 
        
    closedir($dp); 
        
    rmdir($dir); 
      } 

      
    removeRekursiv("../files/$_REQUEST[del_dir]"); 
    Die Variable $del_dir wird ordnungsgemäß übergeben, aber es wird immer das gesamte Verzeichnis "files" gelöscht...

    Bitte um Support.

    Danke, LG, Citral

  • #2
    mach bitte mal folgendes
    PHP-Code:
    function removeRekursiv($dir

      echo 
    $dir;

    removeRekursiv("../files/$_REQUEST[del_dir]");
    echo 
    '<br />';
    removeRekursiv('../files/'.$_REQUEST['del_dir']); 
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      ok, da ist wohl der Hund drin...

      Wenn ich das so mache, dann gibt er mir

      ../files/

      aus. Das heißt wohl, daß er die Variablenübergabe nicht checkt.

      Hast du nen Tipp für mich?
      Danke schon mal im voraus.

      Kommentar


      • #4
        schreib vor die beiden funktionsaufrufe mal
        PHP-Code:
        error_reporting(E_ALL);
        ini_set('display_errors'1); 
        sieht nämlich fast so aus, als wäre $_REQUEST['del_dir'] leer
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          So, habs jetzt folgendermaßen gelöst:

          PHP-Code:
          $dir="../files/$_REQUEST[del_dir]";

            function 
          removeRekursiv($dir
            { 
              
          $dp opendir($dir); 
              while(
          $file readdir($dp)) 
              { 
              
          $name $dir "/" $file;
               
                if (
          $file != "." && $file != ".."
                { 
                if (
          is_dir($name)) 
                
          removeRekursiv ($name); 
                else 
                
          unlink($name); 
                } 
              } 
              
          closedir($dp); 
              
          rmdir($dir); 
            } 
            
          removeRekursiv("../files/$_REQUEST[del_dir]"); 
          So funktionierts. Ist das sehr umständlich oder übermäßig falsch?

          Kommentar

          Lädt...
          X