abderites: Verzeichnis und Unterverzeichnisse anzeigen lassen

Hallo,

ich möchte mit mit dem folgenden Skript die Verzeichnisse und Unterverzeichnisse ausgehend von der Position des Skripts in einer Auswahlliste anzeigen lassen:

<?php

$handle = opendir('.');
 print "\n\t\t<select size=1 name=dir>";
 print "\n\t\t\t<option value=></option>";

while ($dname = readdir($handle)) {
  if (is_dir($dname) && $dname != "_icons" && $dname != ".." && $dname != ".")  {

print "\n\t\t\t<option value=$dname>$dname</option>";

$handle2 = opendir($dname);
   while ($dname2 = readdir($handle2)) {
    if (is_dir($dname2) && $dname2 != ".." && $dname2 != "."){
     print "\n\t\t\t<option value=$dname/$dname2>$dname/$dname2</option>";
    }
   }
  }
 }

print "</select>";
 closedir ($handle);

?>

Die Verzeichnisse werden angezeigt, die Unterverzeichnisse nicht mehr. Das scheint eine Berechtigungssache zu sein, denn wenn ich im 1. $handle ein Unterverzeichnis ansteuere, bekomme ich gar nichts angezeigt. Warum darf ich mir keine Unterverzeichnisse anzeigen lassen und wie kann ich das ändern?

Gruß, abderites

  1. Ahoi abderites,

    $handle2 = opendir($dname);

    keine ahnung obs hilft aber schonmal

    $handle2 = opendir('./'.$dname);

    ausprobiert?

    MfG

    1. Hallo Daniel,

      $handle2 = opendir($dname);

      keine ahnung obs hilft aber schonmal

      $handle2 = opendir('./'.$dname);

      ausprobiert?

      ja, bringt kein Ergebnis!

  2. echo $begrüßung;

    Die Verzeichnisse werden angezeigt, die Unterverzeichnisse nicht mehr. Das scheint eine Berechtigungssache zu sein,

    Was verleitet dich zu der Annahme, dass es sich um ein Berechtigungsproblem handelt?

    Hast du die Ergebnisse der verwendeten Funktionen durch Kontrollausgaben geprüft? Besonders eignet sich dafür var_dump(), denn das zeigt dir auch den Typ des Wertes an. Hast du die Ausgabe von Fehlermeldungen eingeschaltet (display_errors) und das error_reporting auf einen angemessen hohen Wert gestellt (E_ALL ist beim Entwickeln immer eine gute Idee)?

    bekomme ich gar nichts angezeigt.

    Das ist keine Information, mit der man Fehler suchen kann. Findet keine Ausgabe statt, weil eine Bedingung nicht erfüllt wurde? Prüfe das mit einer Kontrollausgabe innerhalb des bedingten Anweisungsblocks. Findet keine Ausgabe statt, weil eine beteiligte Variable einen Leerstring oder nur "unsichtbare" Zeichen enthält? Prüfe das mit einer Kontrollausgabe, indem du vor und nach der Variable sichbare Zeichen ausgibst, oder den Inhalt mit var_dump() überprüfst.

    Warum darf ich mir keine Unterverzeichnisse anzeigen lassen und wie kann ich das ändern?

    Falls es wirklich ein Berechtigungsproblem ist, kann man diese Frage nur beantworten, wenn man die Rechte und Besitzverhältnisse der beteiligten Verzeichnisse sowie den Benutzer, der zuzugreifen versucht, kennt.

    echo "$verabschiedung $name";