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?
    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

    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
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      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
        "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

        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.
          [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

          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!
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar


            • #7
              ich hab den Kram nicht programmiert @nikosch, versuche nur seinen Code zu verstehen
              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

              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.
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                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"
                  "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                  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*
                      [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                      Kommentar


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

                        echo (is_dir($file))."<br>"; baust ?
                        "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                        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 ...
                              [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                              Kommentar

                              Lädt...
                              X