Kann ich eine Indexseite auch mit index.php erstellen?

Beispiel - (Computer, Technik, Internet)

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Dein Screenshot sieht danach aus, als hättest du den Apache Webserver. Meines Wissens ist das, was du beschreibst, mit Apache nicht möglich.

Du kannst so eine Seite aber selbst programmieren! Das ist gar nicht schwer. Hier funktionierender Code, den ich vor einiger Zeit geschrieben habe:

<?php
// Aktuelles Verzeichnis öffnen
$handle = opendir('./');
$dirs = array();
$files = array();

// Ordner und Dateien lesen
while (($entry = readdir($handle)) !== false) {
    if ($entry === '.' || $entry === '..') {
        continue;
    } else if (is_dir($entry)) {
        array_push($dirs, $entry);
    } else {
        array_push($files, $entry);
    }
}

// Dateien und Ordner natürlich alphanumerisch sortieren
sort($dirs, SORT_NATURAL);
sort($files, SORT_NATURAL);

// Ordner ausgeben
for ($i = 0; $i < count($dirs); $i++) {
    echo "<a class='ordner' href='$dirs[$i]'>$dirs[$i]</a>";
}

// Dateien ausgeben
for ($i = 0; $i < count($files); $i++) {
    echo "<a class='datei' href='$files[$i]'>$files[$i]</a>";
}

// Verzeichnis schließen - nicht vergessen!
closedir($handle);

Das kannst du dann auch noch mit etwas CSS aufpeppen:

<style>
.ordner, .datei {
  display: block;
  padding: 5px 10px;
  margin: 5px 0;
  background-color: #fdfdaa;
  color: black;
  text-decoration: none;
}
.datei {
  background-color: white;
  color: #0044ee;
}
.ordner:hover, .datei:hover {
  opacity: .7;
}
</style>

Klar geht das.

Einige Beispiele findest du in https://www.qwant.com/?q=php%20directory%20list&t=web

Den PHP-Code setzt du an die Stelle der Seite, wo die Liste hin soll.

(Hab jetzt nicht nachgesehen, ob dabei die Einträge auch als Link dargestellt werden. Ist aber auch kein Problem, dann packt man die Dinger eben noch in <a>-Tags.)

Mit ein bisschen CSS kannst du die Liste dann auch schöner aussehen lassen.

Woher ich das weiß:Recherche

biolaxy 
Fragesteller
 06.07.2018, 07:30

Diese alternative kenne ich, benutze ich auch derzeit, jedoch würde ich gerne die originale indexliste verwenden

0
PWolff  06.07.2018, 11:55
@biolaxy

Die originale Indexliste wird vom Webserver bereitgestellt. Entweder greift PHP schon darauf zurück (nur Inhalt, nicht Formatierung natürlich), oder du erweiterst die Webserver-Software entsprechend (Apache z. B. ist ja Open Source), oder du startest mit PHP einen Webserver mit Fernsteuerung und weist den an, diese Liste zu speichern, oder du schreibst dir eine kleine Anwendung, die diese Liste in ein HTML-Anzeigeelement lädt und abspeichert. Die letzten beiden erfordern, dass du von PHP aus eine ausführbare Datei auf dem Server startest und ihre Beendigung abwartest.

1

Auch wenn so was möglich ist, würde ich dir sowas nie raten!

Es ist nicht gut, wenn die Leute wissen, was wie wo auf deinem Webserver liegt. Benutze hierfür einfach einen FTP Server oder einen Dateibrowser in PHP um die die Dateien anzeigen zu lassen, mach das aber bitte nicht öffentlich. Normalerweise Verbietet man das Auflisten der Dateien sogar Server-Seitig

Woher ich das weiß:Studium / Ausbildung – Systemadministrator und Softwareentwickler

biolaxy 
Fragesteller
 06.07.2018, 07:28

Das will ich ja nicht direkt auf dem rootverzeichnis machen, ich habe nur einen Grafische Seite (index.php) auf der ein Paar Dinge zu Downloads stehen und würde aber gerne auch den Ganzen ordner also indexliste ausgeben lassen. Das Risiko ist mir bewusst, aber ich habe es auch per htaccess passwortgeschützt

0

was du machen könntest, du könntest eine subdomain anlegen. z.B.

download.meinedomain.de

wenn du den inahlt des entsprechenden ordners dann mit der htaccess datei freigibst, kann der user unter der angegebenenen domain auf die inhalte zugreifen, ohne den rest deiner hompeage sehen zu können...

lg, Anna

Ja, du musst die DirectoryIndex-Direktive auf irgendetwas anderes setzen. Z.B.

DirectoryIndex bla.html

Siehe: https://httpd.apache.org/docs/2.4/mod/mod_dir.html

Woher ich das weiß:Berufserfahrung