Kann ich eine Indexseite auch mit index.php erstellen?

Beispiel - (Computer, Internet, Technik)

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>

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

11

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

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
11

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

0
53
@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

Wenn Javascript nicht aktiviert ist soll eine Nachricht kommen?

Wie kann ich anzeigen das Javascript nicht aktiviert ist?

    <script type="text/javascript">
    <!--
        window.onload=alert("Ein Javascript!")
    // -->
    </script>

Dieses Script habe ich bisher. Bei meiner Webseite sieht die URL so aus: index.php?section=name

wo Name steht gehört die Seite die man aufrufen will hin. Ich habe dies in den header geschrieben (index.php). Nun ist das Problem das immer wenn ich eine Seite aufrufe kommt dieses Fenster. Ich möchte aber nur beim ersten Aufrufen der Seite das dies angezeigt wird. Das heißt wenn man die Seite schließt und wieder öffnet soll dieses kommen wenn Javascript nicht aktiviert ist. Wie mache ich dies?

...zur Frage

Zweite Seite html und css?

Wie macht man das mit einer weiteren Seite bei einer Webseite? Ich habe die Seite auf dem Html Doku verknüpft muss aber wissen wie icj über css nur auf die zweite Seite zugreifen kann muss ich da für jede Seite eine neue css Datei öffnen?

...zur Frage

Wie kann man auf einem Raspberry PI ein ShellScript über eine Webseite starten?

Ich habe auf einem Raspberry PI Debian Jessie installiert. Anschließend habe ich noch Lighthttpd, PHP5 und MySQL installiert.

Der Webserver funktioniert soweit und ich kann über eine Webseite auch schon Befehle wie z.B. "ls -lart" ausführen und bekomme auf der PHP-Seite dann die den Verzeichnis-Inhalt angezeigt - So weit auch OK....

Was nicht funktioniert ist das Starten von Shellscripten über exec() oder shell_exec()

Kann mir jemand sagen was ich an dem Webserver ändern muss, damit ich über PHP Shellscripte starten kann?

...zur Frage

Wie gebe ich einer datei im webserver berechtigungen über eine anderes Verzeichnis auf Linux(Debain 8)?

Ich habe auf meinem VServer(Debian8) owncloud installiert. Owncloud habe ich in /var/www/html/owncloud installiert. Allerdings habe ich den Pfad für das Verzeichnis zum Speichern von hochgeladenen Dateien wie Photos und Dokumente unter /media/owncloud/data gelegt damit auf die Dateien nicht durch den Webbrowser zugegriffen werden kann. Allerdings hatt owncloud nun keine Berechtigung über den Speicherpfad mehr. Wie gebe ich owncloud nun die Rechte über diesen Speicherpfad?

...zur Frage

Was möchtest Du wissen?