readdir(): 22 is not

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

  • readdir(): 22 is not

    Hallo,
    hab ein kleines Problem mit readdir()
    opendir() scheint noch in Ordnung zu sein.
    Die Fehlermeldung:
    Warning: readdir(): 22 is not a valid Directory resource in C:\Apache2 ...
    Script läuft derzeit local auf Windows.
    Im Netz hätte ich gedacht, es könnte mit den Zugriffsrechten der Dateien zusammenhängen, aber bei Windows?

    Das Script soll Dateien löschen, deren Name aus einer id und einer Nummer zusammengesetzt ist, wobei nach ID gelöscht werden soll (erster Teil des Namens)
    PHP-Code:
    $ordner="module/test/morepics";
    $handle=opendir($ordner); // Verzeichnis öffnen //
    echo $handle;
    while (
    $filereaddir($handle)) { // Verzeichnis lesen //
        
    if ($file != "." && $file != "..") { 
    if (
    is_file($file)) { // is_file --  Prüft, ob der gegebene Dateiname eine Datei ist  //
    $lnkname=$file// Linkname = Dateiname //
    $x=strpos ($lnkname"n")-1;
    $lnkname=substr($lnkname,0,$x);
    if(
    $lnkname=$_GET['del']){
       @
    unlink("module/test/more_pics/".$file);
       echo 
    $file."test";
    }}}
    closedir($handle); 
    Ich hoffe es sieht jemand mehr als ich,

    Gruß D

  • #2
    Re: readdir(): 22 is not

    Original geschrieben von Diggedag
    opendir() scheint noch in Ordnung zu sein.
    scheint, oder ist?
    ist dein error_reporting auf E_ALL gestellt?

    Die Fehlermeldung:
    Warning: readdir(): 22 is not a valid Directory resource in C:\Apache2 ...
    besagt nämlich, dass $handle wohl doch nicht wie gewünscht einen lesbaren Verzeichnis-Handle enthält.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hab ich gerade getan, ist nichts zu sehen außer die Notice's aus einer Datei die per include reingeladen wird (sind nur Konstanten für Mehrsprachigkeit)

      Kommentar


      • #4
        also wenn ich opendir ändere dann zeigt opendir zusätzlich noch einen Fehler an, ist aber nur readdir betroffen und das verweist ja auf das gleiche Verzeichnis

        Kommentar


        • #5
          hatte noch einen kleinen schreibfehler, soll beides morepics heißen, ist aber nicht der Grund für diesen Fehler gewesen.

          Aufruf der Datei:

          http://localhost/testordner/index.php?menu=admin/test/index.php&del=34
          --> alle Bilder bei denen der Name mit 34 beginnt, sollen gelöscht werden.

          Der Ordner wo die Dateien (jpg-Bilder) gespeichert werden ist:

          module/test/morepics

          testordner ist das Hauptverzeichnis

          Vielleicht sehe ich ja den Wald vor lauter Bäumen nicht, aber ich kann nichts finden, was meiner Meinung nach falsch wäre.

          Kommentar


          • #6
            PHP-Code:
               /* This is the correct way to loop over the directory. */
               
            while (false !== ($file readdir($handle))) {
                   echo 
            "$file\n";
               }

               
            /* This is the WRONG way to loop over the directory. */
               
            while ($file readdir($handle)) {
                   echo 
            "$file\n";
               } 

            Kommentar


            • #7
              okay ich probiers erstmal aus,

              in php werden aber beide Varianten angeboten:

              $handle=opendir('.');
              while ($file = readdir ($handle)) {
              if ($file != "." && $file != "..") {
              echo "$file\n";
              }
              }
              closedir($handle);

              wird als 2. Beispiel aufgeführt, wenn mann " . " oder " .. " weg haben will.

              dachte deshalb, spielt keine Rolle.

              Danke euch

              Kommentar


              • #8
                ändert aber nichts.

                immer noch das gleiche

                Kommentar


                • #9
                  brich mal deinen code gemäß den regeln um. dann kann ich mir vielleicht auch mal eure kommentare durchlesen.

                  Kommentar


                  • #10
                    sorry, hoffe es ist jetzt lesbarer

                    PHP-Code:
                    $ordner="module/test/morepics";
                    // Verzeichnis öffnen //
                    $handle=opendir($ordner);
                    echo 
                    $handle;
                    // Verzeichnis lesen //
                    while ($filereaddir($handle)) { 
                        if (
                    $file != "." && $file != "..") { 
                    // is_file --  Prüft, ob der gegebene Dateiname eine Datei ist  //
                    if (is_file($file)) { $lnkname=$file;
                    // Linkname = Dateiname //
                    $x=strpos ($lnkname"n")-1;
                    $lnkname=substr($lnkname,0,$x);
                    if(
                    $lnkname=$_GET['del']){
                       @
                    unlink("module/test/more_pics/".$file);
                       echo 
                    $file."test";
                    }}}
                    closedir($handle); 

                    Kommentar


                    • #11
                      nöö! ich habe immer noch nen horizontalen scrollbalken. trotz 1280er breite!

                      Kommentar


                      • #12
                        Jetzt muss man Horizontal Scrollen... Also Umbrechen..

                        Warum nutzt du

                        if ($file != "." && $file != "..") auf einer Windowsmaschine?


                        Gut hat nichts mit deinem Problem zu tun..

                        Vor dem Löschversuch solltest du dir mal den Dateinamen ausgeben lassen und gleichzeitig die Rechte der Datei überprüfen die zu versuchst du löschen.

                        Über FTP Hochgeladen oder über den Explorer in ein Verzeichnis Kopieren heisst noch lange nicht das der Webserver diese Datei löschen darf..
                        gruss Chris

                        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                        Kommentar


                        • #13
                          verstehe ich nicht, bei mir nicht so angezeigt - habe zwar die selbe auflösung, aber ich kann mein Fenster noch verkleinern und trotzdem alles sehen

                          Kommentar


                          • #14
                            aha - Browser-Problem,

                            habs grad mit Firefox geöffnet, da sind keine Zeilenumbrüche,

                            Mit IE siehts anders aus

                            Kommentar

                            Lädt...
                            X