Autor Beitrag
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Sa 04.09.10 22:14 
Bin doch so blöd, hab ich doch selber bei den index.php drin!
Sorry
Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 04.09.10 22:49 
user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
müsste das @ dann nicht vor den funktionsnamen?
Das gilt AFAIK für die restliche Zeile.

Du kennst das auch aus Batchdateien nehme ich an. Da ist das genauso. Das typische @echo off am Anfang, damit man auch das nicht mehr angezeigt bekommt.
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mi 15.09.10 19:12 
Ein Problem wäre da aber noch, es wird leider auch ".." und "." als Ordner oder Datei in der Übersicht angezeigt.
Ich möchte aber nicht das jemand sich so in das Verzeichnis hangeln kann in dem die Hauptseite und weitere Dateien liegen.

Also wollte ich dann überprüfen ob $file = ".." oder "." ist, jetzt wird aber nichts mehr angezeigt, vermutlich da in den Dateinamen ja auch Punkte zur Dateiendung gehören.
ausblenden Quelltext
1:
2:
3:
if (!$file = '..') {
 /* der ganze Kram zur Anzeige */
}

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 15.09.10 19:35 
user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Ein Problem wäre da aber noch, es wird leider auch ".." und "." als Ordner oder Datei in der Übersicht angezeigt.
Ich möchte aber nicht das jemand sich so in das Verzeichnis hangeln kann in dem die Hauptseite und weitere Dateien liegen.

Das sind zwei verschiedene Probleme: ein optisches und ein akutes Sicherheitsrisiko. Das erste ist recht leicht zu lösen, du hast es ja fast geschafft. Um aber tatsächlich zu verhindern, dass ein Ordner aufgerufen werden kann, der oberhalb des Script-Ordner liegt, musst du die Eingaben prüfen, nicht die Ausgabe filtern. Beispielsweise könntest du Strings mit dem Inhalt '..' verbieten.

user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Also wollte ich dann überprüfen ob $file = ".." oder "." ist, jetzt wird aber nichts mehr angezeigt, vermutlich da in den Dateinamen ja auch Punkte zur Dateiendung gehören.
ausblenden Quelltext
1:
2:
3:
if (!$file = '..') {
 /* der ganze Kram zur Anzeige */
}

Zwei kleine Fehler. Erstens musst du das doppelte Gleichheitszeichen (==) für Gleichheitstests verwenden (das einfache (=) bewirkt eine Zuweisung).

ausblenden Quelltext
1:
if (!$file == '..') {					

Zweitens die Reihenfolge der Operatoren beachten. Du hast deinen Code schön formatiert, denn es wird sichtbar, wie PHP den Ausdruck auswertet: Erst wird der boolsche Operator Nicht auf $file angewandt, was bewirkt, dass $file in einen Boolean verwandelt wird. Dabei kommt dann true heraus. Der nicht-Operator macht daraus ein false. Jetzt vergleichst du false mit '..' - und was kommt raus - natürlich false, denn die Gleichheit ist unwahr.

Stattdessen musst du entweder zuerst vergleichen, dann negieren (!($file == '..')) oder einfach den ungleich-Operator (!= verwenden).