Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Ordner Erkennung mit is_dir funktioniert nicht mehr

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Ordner Erkennung mit is_dir funktioniert nicht mehr

    Hallo Leute,

    ich habe folgendes Problem. Meine php Datei soll im Unterordner 'Bilder' sämtlichen Inhalt überprüfen und nur die Ordner anzeigen. Wärend meiner Testphase lag die php Datei dafür im Unterordner und da wurde auch alles wunderbar angezeigt. Seit ich aber die php Datei dorthin verschoben habe, wo sie letztendlich bleiben soll, wird mir zwar sämtlicher Inhalt im Unterordner angezeigt, aber leider werden die Ordner nicht mehr als Ordner erkannt.
    Hier mal der Code.

    PHP-Code:
     <?php
      
    if ($handle opendir('bilder')) {    
          while (
    false !== ($file readdir($handle))) { 
             if (
    $file != "." && $file != "..") {
                 if (
    is_dir($file)== true) {       //prüfen, ob es sich um einen Ordner handelt
                    
    $handle2=opendir('bilder/'.$file);
                    while (
    $f readdir($handle2)) {    //prüfen, ob dieses Verzeichnis einen Inhalt besitzt
                          
    if ($f != "." && $f != ".." && $f != "thumbs") {  
                             
    $i=1
                             break; 
                          }  
                    }  
                    
    closedir($handle2);
                    if (
    $i == 1) {
                       echo 
    '<ul><li><a href="bildergalerie.php?galerie='.$file.'">'.$file.'</a></li></ul>';
                    }
                    
    $i =0;
                 }
              }
          }
      
    closedir($handle);
      }
     
    ?>
    Wenn ich meine php Datei in den 'Bilder' Ordner lege und bei den opendir Anweisungen auf ../bilder ändere, funktioniert alles. Hat jemand eine Idee ?

    Gruß
    HerrFrie

  • #2
    liegt das auf nem Linux-Server ?

    versuch mal "bilder" durch "./bilder" zu ersetzen

    und liegt das ausgeführte PHP-script wirklich direkt 1 Ebene über dem Bilder-Ordner?

    Kommentar


    • #3
      Zitat von HerrFrie Beitrag anzeigen
      Wenn ich meine php Datei in den 'Bilder' Ordner lege und bei den opendir Anweisungen auf ../bilder ändere, funktioniert alles. Hat jemand eine Idee ?
      Dann liegen der Ordner und das Script wohl nicht auf der gleichen Ordnerebene.

      So sollte es aussehen:
      Code:
      Inhalt von: /your/path
      script.php
      Bilder         <dir>
      Und so sieht es aus:
      Code:
      Inhalt von: /your/path/Bilder
      script.php

      Kommentar


      • #4
        hmm istegelitz ..

        ../bilder sollte aus bilder wieder dorthin zeigen .. das passt in meinen Augen

        die Frage ist , ob das Script jetzt direkt über bilder liegt ?


        er schreibt zwar, dass er es an den endgültigen Ort geschoben hat .. aber es ist nicht direkt ersichtlich welcher das sein soll

        Kommentar


        • #5
          Zitat von HerrFrie Beitrag anzeigen
          Seit ich aber die php Datei dorthin verschoben habe, wo sie letztendlich bleiben soll, wird mir zwar sämtlicher Inhalt im Unterordner angezeigt, aber leider werden die Ordner nicht mehr als Ordner erkannt.
          Natürlich werden sie das nicht, weil du der prüfenden Funktion nicht den Pfad mitteilst.

          Kommentar


          • #6
            das passt in meinen Augen
            Bei der Programmierung geht es um Wissen, nicht um Schätzen. Lass Dir beteiligte Variablen ausgeben und hör auf zu Raten!

            Kommentar


            • #7
              ich hab den Kram nicht programmiert @nikosch, versuche nur seinen Code zu verstehen

              Kommentar


              • #8
                Ja richtig... genau darum dreht sich das Problem.

                Er hat sein Script so programmiert, das er einen Unterordner Bilder durchsuchen will... jetzt liegt das Script aber IM Ordner Bilder, dort sucht das Script dann den Unterordner Bilder (den es aber nicht gibt). Setzt er stattdessen ../bilder ein, klappt es: das Script sucht ../bilder vom aktuellen Verzeichnis (Bilder) aus, die beiden Punkte sorgen dafür, das es erstmal eine Ebene höher geht.

                Kommentar


                • #9
                  nein .. er hat es nach eigener Aussage aus Bilder herausgenommen und an den endgültigen Platz verschoben - der im Prinzip auf ../ von Bilder aus gesehen liegt ....

                  er hat doch nur nochmal die Situation von vorher ..
                  - Datei im Bilder-Ordner
                  - Pfadangabe ../bilder

                  verdeutlicht, als "es noch funktionierte"

                  Kommentar


                  • #10
                    Also,

                    die Ordnerstruktur soll so aussehen.

                    Hauptverzeichnis
                    ----------------
                    bilder <-- Ordner, in dem dann Unterordner stehen
                    galerie.php <-- die Datei, um die es geht


                    Ordner 'bilder'
                    -------------
                    Sommer2007 <-- Unterordner, in dem sich jpg Bilder befinden
                    Ausflug2008 <-- Unterordner, in dem sich jpg Bilder befinden

                    Das mit dem ./bilder hatte ich auch erst so stehen, hatte das schon in der Verzweifelung geändert.
                    Wenn ich die galerie.php mit in den Ordner 'bilder' lege, funktioniert alles.

                    Über ein paar echo's kann ich mir auch den Inhalt vom Verzeichnis 'bilder' anzeigen lassen, aber nach der is_dir Abfrage kommt dann nichts mehr, es wird dann nichts als Ordner erkannt.
                    bi

                    Kommentar


                    • #11
                      *hust*

                      Kommentar


                      • #12
                        was kommt denn als Ausgabe, wenn du direkt VOR die if (is_dir Abfrage ein

                        echo (is_dir($file))."<br>"; baust ?

                        Kommentar


                        • #13
                          Man man man, so schnell kann ich gar nicht antworten, wie ihr hier schreibt. Ich versuche mal alles zu definieren.

                          1. wenn meine galerie.php im Ordner 'bilder' liegt und ich als opendir ../bilder angebe, dann funktioniert es.
                          2. die galerie.php liegt aber auf der selben Ebene wie der Ordner 'bilder', weshalb ich dann den opendir auf ./bilder geändert hatte. Dies sollte ja meiner Meinung nach richtig gewesen sein. Wenn ich das Skript jetzt aufrufe, funktioniert es nicht mehr, mir werden keine in 'bilder' befindlichen Ordner angezeigt.

                          Vor
                          PHP-Code:
                          if (is_dir($file)== true) { 
                          wird mir über echo $file."<br>"; sämtlicher Inhalt angezeigt und nach dieser Zeile nichts mehr, sodass die Namen nicht als Ordner erkannt werden.

                          Kommentar


                          • #14
                            @eagle275,

                            auch hier wird nur der '.' als Verzeichnis erkannt

                            Kommentar


                            • #15
                              Zitat von HerrFrie Beitrag anzeigen
                              Ich versuche mal alles zu definieren.
                              Wie wär's, wenn du stattdessen mal versuchst, die Antworten* zu verstehen?

                              Vor
                              PHP-Code:
                              if (is_dir($file)== true) { 
                              wird mir über echo $file."<br>"; sämtlicher Inhalt angezeigt und nach dieser Zeile nichts mehr, sodass die Namen nicht als Ordner erkannt werden.
                              Noch mal: (*seufz*)
                              Du hast an der Stelle den Pfad nicht mit angegeben, also kann die Funktion die Zeichenkette, die ihr übergeben wird, auch nicht als Verzeichnis „erkennen“!


                              * zumindest die sinnvolle(n), nicht das Herumgerate der anderen ...

                              Kommentar

                              Lädt...
                              X