Marco: mit xmlhttpRequest Dateibaum auslesen - offline ja, online nein

Hallo allerseits,

habe nun schon den gesamten Vormittag mit googlen und Suchen verbracht, aber noch keine Lösung gefunden.

Ich möchte auf meiner Seite gern die Verzeichnisstruktur auslesen. Auf dem heimischen Rechner funktioniert es, aber sobald ich es im INternet versuche, bekomme ich immer nur den Quelltext der "Zugriff verweigert"-Seite.
Ist es möglich das ganze auszuschalten? (Oder irgendwas zu ändern, damit es funktioniert?)

Vielen Dank im Voraus
Marco

  1. Ich möchte auf meiner Seite gern die Verzeichnisstruktur auslesen.

    Verzeichnisstruktur von was?

    Auf dem heimischen Rechner funktioniert es, aber sobald ich es im INternet versuche, bekomme ich immer nur den Quelltext der "Zugriff verweigert"-Seite.

    Was tust du?

    Ist es möglich das ganze auszuschalten? (Oder irgendwas zu ändern, damit es funktioniert?)

    Konfiguriere den Internet-Server anders.

    1. Erst einmal Danke.

      Ich möchte das Problem mal etwas genauer schildern:
      Da ich auf dem heimischen Computer die Verzeichnisstruktur auslesen kann, wollte ich meine Bildergalerie großartig abändern.
      Kleines Bild: Bildname_kl.JPG
      Großes Bild: Bildname_gr.JPG
      Beschreibung: Bildname.TXT

      Da dachte ich eben, es wäre doch möglich (auf der eigenen Festplatte funktioniert es ja) online das Verzeichnis Bildergalerie einzulesen und die Daten dann in einem Array zu speichern und weiter zu bearbeiten.
      Nun habe ich gelesen, ich solle doch den Server anders konfigurieren - da sei angemerkt, dass ich meine Seite bei 1&1 habe, und die Einstellungen so sind (es ist mir unbekannt, ob ich da was ändern kann...)

      Beispiel:
      So sehe der Dateipfad aus:
      file:\\D:\Benutzer\Marco\Internetseiten\

      Das wäre dann das Ergebnis:
      300: file:///D:/Benutzer/Marco/Internetseiten/
      200: filename content-length last-modified file-type
      201: Organisation_von_JavaScripten-Dateien 0 Mon,%2019%20Feb%202007%2009:05:01%20GMT DIRECTORY
      201: Organisation_von_JavaScripten.htm 68315 Mon,%2019%20Feb%202007%2009:05:01%20GMT FILE
      201: Testseite.html 3059 Mon,%2019%20Feb%202007%2014:33:12%20GMT FILE
      201: Testseite2.html 657 Mon,%2019%20Feb%202007%2014:29:13%20GMT FILE
      201: Wochenberichte-Dateien 0 Sun,%2018%20Feb%202007%2010:46:00%20GMT DIRECTORY
      201: Wochenberichte.htm 1646 Sun,%2018%20Feb%202007%2010:32:55%20GMT FILE
      201: Wochenberichte.html 1652 Sun,%2018%20Feb%202007%2010:47:35%20GMT FILE
      201: sz-Dateien 0 Sun,%2018%20Feb%202007%2010:48:05%20GMT DIRECTORY
      201: sz.htm 12183 Sun,%2018%20Feb%202007%2010:48:05%20GMT FILE

      Und hier der Quellcode (wen es interessiert):
      function Lade_Datei()
      {
        Dateiname_Grafik = document.Form_LadeDatei.LadeDatei_Pfad.value;
        if(Dateiname_Grafik == "") return;
        var xmlHttp = false;
        alert(Dateiname_Grafik)
        Pfad=Dateiname_Grafik;

      // Internet Explorer
        try
        {
          xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
          try
          {
            xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
          }
          catch(e)
          {
            xmlHttp  = false;
          }
        }
        // Mozilla, Opera und Safari
        if (!xmlHttp  && typeof XMLHttpRequest != 'undefined')
        {
          xmlHttp = new XMLHttpRequest();
        }
        if (xmlHttp)
        {
          xmlHttp.open('GET', Pfad, true);
          xmlHttp.onreadystatechange = function ()
          {
            if (xmlHttp.readyState == 4)
            {
              document.write(xmlHttp.responseText);
            }
          };
          xmlHttp.send(null);
        }
      }

      Schönen Gruß
      Marco

      1. Ich möchte das Problem mal etwas genauer schildern:
        Da ich auf dem heimischen Computer die Verzeichnisstruktur auslesen kann, wollte ich meine Bildergalerie großartig abändern.
        Kleines Bild: Bildname_kl.JPG
        Großes Bild: Bildname_gr.JPG
        Beschreibung: Bildname.TXT

        Das ist noch nichts, was zwingend AJAX erfordern würde.

        Da dachte ich eben, es wäre doch möglich (auf der eigenen Festplatte funktioniert es ja) online das Verzeichnis Bildergalerie einzulesen und die Daten dann in einem Array zu speichern und weiter zu bearbeiten.

        HTTP kennt keine Verzeichnislistings! Weil HTTP keine Verzeichnisse kennt, in denen Dateien lagern. Weil HTTP gar keine Dateien kennt, sondern nur Ressourcen.

        Dass die meisten Ressourcen vom Webserver durch Übermittlung einer Datei befriedigt werden, ist nicht Schuld von HTTP.

        Und offenbar liefert dein lokaler Webserver auf Anfrage eines "Verzeichnisses" eine dynamisch generierte Liste der auf dem Webserver enthaltenen Dateien.

        Nur: Das ist eben kein "Verzeichnislisting", sondern eine ganz simple, schlichte Ressource, die du da kriegst.

        Dein 1&1-Webserver reagiert auf die identische Nachfrage nach dieser Ressource mutmaßlich mit HTTP-Statuscode "403 Forbidden" - was schlicht bedeutet, dass er keine Seite mit dem Verzeichnislisting dynamisch generieren will - und das ist auch gut so, denn die meisten Webseitenbetreiber wollen ihre Verzeichnisinhalte nicht einfach so preisgeben.

        Nun habe ich gelesen, ich solle doch den Server anders konfigurieren - da sei angemerkt, dass ich meine Seite bei 1&1 habe, und die Einstellungen so sind (es ist mir unbekannt, ob ich da was ändern kann...)

        Das solltest du dann mal untersuchen. .htaccess existiert jedenfalls, und 1&1 nutzt die auch.

        So sehe der Dateipfad aus:
        file:\\D:\Benutzer\Marco\Internetseiten\

        Das ist ja sowieso schon mal ein Fehler: Zugriff auf das file-Protokoll ist grundsätzlich böse! Nutze das HTTP-Protokoll!

        Das wäre dann das Ergebnis:
        300: file:///D:/Benutzer/Marco/Internetseiten/
        200: filename content-length last-modified file-type
        201: Organisation_von_JavaScripten-Dateien 0 Mon,%2019%20Feb%202007%2009:05:01%20GMT DIRECTORY
        201: Organisation_von_JavaScripten.htm 68315 Mon,%2019%20Feb%202007%2009:05:01%20GMT FILE
        201: Testseite.html 3059 Mon,%2019%20Feb%202007%2014:33:12%20GMT FILE
        201: Testseite2.html 657 Mon,%2019%20Feb%202007%2014:29:13%20GMT FILE
        201: Wochenberichte-Dateien 0 Sun,%2018%20Feb%202007%2010:46:00%20GMT DIRECTORY
        201: Wochenberichte.htm 1646 Sun,%2018%20Feb%202007%2010:32:55%20GMT FILE
        201: Wochenberichte.html 1652 Sun,%2018%20Feb%202007%2010:47:35%20GMT FILE
        201: sz-Dateien 0 Sun,%2018%20Feb%202007%2010:48:05%20GMT DIRECTORY
        201: sz.htm 12183 Sun,%2018%20Feb%202007%2010:48:05%20GMT FILE

        Das ist dein lokales Ergebnis. Dynamisch generierte Verzeichnislistings haben aber keine definierte Formatierung, sondern können ganz unterschiedlich aussehen. Insbesondere ist nicht garantiert, dass die Dateinamen auch komplett angezeigt werden - die könnten bei zu vielen Zeichen auch verkürzt werden.

        1. Naja, vielen Dank für die Antwort,

          bisher nutze ich für die Bilder"datenbank" nur Javascript, wobei eben die Bilder (mit Beschreibung und Suchbegriffen) in einer JS-Datei gespeichert sind.
          Nun habe ich aber schon fest gestellt, dass die Ladezeiten eben immer länger werden, je mehr Bilder gespeichert sind. (Wenn z.B. der IE meint, dass das Script zu lange brauchen könnte, bis es fertig ist... ;-) )
          Deshalb suche ich eben nach anderen Methoden, um die Bildergalerie auch für noch-viel-mehr Bilder nutzen zu können.
          Mir scheint nun, dass PHP dafür auch sehr gut geeignet sein kann. Aber da muss ich mich erst einmal reinlesen.

          Gruß
          Marco

  2. hi,

    Ich möchte auf meiner Seite gern die Verzeichnisstruktur auslesen. Auf dem heimischen Rechner funktioniert es, aber sobald ich es im INternet versuche, bekomme ich immer nur den Quelltext der "Zugriff verweigert"-Seite.

    Du meinst 403 Forbidden, weil Verzeichnislisting untersagt wurde?

    Ist es möglich das ganze auszuschalten?

    Beim Apachen über Options +Indexes

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }