Seite 4 von 7
Re: Frage an die PHP-Experten...
Verfasst: 21.04.2010, 19:09
von Fightmeyer
Vielleicht kann jemand was mit dieser Fehlermeldung anfangen...
Klickt mal auf den Link! Da müsste eigentlich ne leere schwarze Seite kommen.
http://www.snoozen.de/leer2.php
Das hier mit ner html funktioniert dagegen.
http://www.snoozen.de/xampp.html
Re: Frage an die PHP-Experten...
Verfasst: 21.04.2010, 19:43
von elevar
Meinst du diese Fehlermeldung
Der Webserver hat geschrieben:The requested URL /fastcgiphp/php-fcgi-starter/leer2.php was not found on this server.
Ist die Datei leer2.php denn in genau diesem Verzeichnis, also in /fastcgiphp/php-fcgi-starter/ ?
Re: Frage an die PHP-Experten...
Verfasst: 21.04.2010, 19:59
von Fightmeyer
elevar hat geschrieben:Meinst du diese Fehlermeldung
Der Webserver hat geschrieben:The requested URL /fastcgiphp/php-fcgi-starter/leer2.php was not found on this server.
Ist die Datei leer2.php denn in genau diesem Verzeichnis, also in /fastcgiphp/php-fcgi-starter/ ?
Ja, diese Meldung meine ich.
Und Nein. Dieses Verzeichnis gibt es bei mir auch gar nicht. Keine Ahnung, wo er sich das hermelkt.
Komisch ist, dass es bei der HTML-Datei, die im gleichen Ordner liegt geht.
Re: Frage an die PHP-Experten...
Verfasst: 21.04.2010, 20:01
von neon
Hast Du vielleicht irgendeinen Standardpfad nicht angepasst?
Re: Frage an die PHP-Experten...
Verfasst: 21.04.2010, 20:09
von Fightmeyer
Welcher könnte das sein?
Wenn ich mich via FTP mit meinem Webspace verbinde, dann sehe ich dort einige vom Anbieter vordefinierte Ordner und einen Ordner namens "HTML". Dort liegt die index.html vom Anbieter drin. (die wird angezeigt, wenn man einfach nur
http://www.snoozen.de eingibt)
Also das ist anscheinend der Ordner, auf den die Domain gelinkt ist.
In den gleichen Ordner hab ich nun die links2.php reinkopiert und mit der klappts nicht.
Ich bin eigentlich davon ausgegangen, dass das ganze php-geraffel im Hintergrund vorkonfiguriert ist. Ich hab doch keine blassen von dem Kram...

Re: Frage an die PHP-Experten...
Verfasst: 21.04.2010, 20:12
von neon
Ich auch nicht, nur ist das der typische Fehler, wenn man plötzlich auf einem Pfad landet, den man vorher noch nie gesehen hat.
Re: Frage an die PHP-Experten...
Verfasst: 21.04.2010, 20:22
von Fightmeyer
Na dann schreib ich das mal bei denen ins Forum... mal sehen, was der Support sagt.
Fängt ja schon mal geil an...
EDIT: So wie es aussieht, ist da bei der Webspaceeinrichtung tatsächlich etwas falschgemacht worden. Der Support kümmert sich drum...
Re: Frage an die PHP-Experten...
Verfasst: 15.09.2010, 09:53
von Fightmeyer
Hallo Leute,
ich hatte hier ziemlich weit am Anfang des Threads mal die Frage gestellt, ob es eine Möglichkeit gibt, ein Verzeichnis so zu schützen, dass man nicht mehr direkt darauf verlinken kann, aber trotzdem mittels php-Script darauf zugreifen kann.
Ich habe jetzt eine Lösung in den Weiten des netzes gefunden und muss nun noch ein bißchen Finetuning betreiben.
Sachverhalt:
Ich habe einen Ordner, mit Unterordnern, in denen sich ausschließlich jpg-Dateien befinden.
Diese werden in einer Gallerie auf meiner Homepage angezeigt. Funzt so weit. Allerdings will ich das nur für Leute sichtbar haben, die sich auch auf meiner Homepage via php-Session angemeldet haben.
Das habe ich nun folgendermaßen gelöst. Den besagten Ordner habe ich mittels .htaccess geschützt. Das Aufrufen der Bilder passiert nun in meiner Homepage nicht mehr einfach nur mittels <img>-Tag, sondern über ein Streaming durch eine php-Datei.
Code: Alles auswählen
<img src=scripte/bild.php?bild=../geschützterOrdner/bild1.jpg"/>
Der Code in der bild.php, die das Bild dann letztendlich streamt, sieht so aus:
Code: Alles auswählen
$datei=fopen($_GET['bild'],r);
echo fread($datei, filesize($datei));
fclose($datei);
Ergebnis:
Man kann nicht mehr direkt auf das Bild linken (da ja .htaccess-Schutz), sondern kann es nur noch über dieses Script aufrufen. Und das wiederum wird nur bei aktiver Session ausgeführt.
Nun möchte ich aber das ganze noch etwas absichern. Wie müsste der Code aussehen, dass nur jpg-Dateien gelesen werden und falls es sich um eine andere oder fehlerhafte Datei handelt, soll ein "Standardfehlerbild" geladen werden?
Kann mir da jemand von euch helfen?
Schon mal danke vorab!
Re: Frage an die PHP-Experten...
Verfasst: 15.09.2010, 10:44
von elevar
Das würde ich wieder die Mottenkiste mit den regulären Ausdrücken aufmachen:
Code: Alles auswählen
if ( preg_match('/^(.*?)\.(jpg|jpeg)$/i', $_GET['bild']) && file_exists($_GET['bild']) ) {
// Zeige Bild
}
else {
// Zeige Fehlermeldung
}
Der String '/^(.*?)\.(jpg|jpeg)$/i' testet, ob die Datei mit .jpg oder .jpeg aufhört.
- Das ^ markiert den Anfang des zu testenden Strings.
- (.*?) gibt eine beliebige Zeichenfolge an (so wenig wie möglich).
- Der Punkt . muss mit einem \ "escaped" werden, da es sich beim Punkt um ein Zeichen handelt, das in der Syntax sonst eine eigene Bedeutung hat.
- (jpg|jpeg) bedeutet jpg oder jpeg
- Der Modifikator i ganz am Ende bedeutet, dass es nicht auf Groß- und Kleinschreibung ankommt.
- Das $ markiert das Ende des zu testenden Strings.
Ein String, der also mit beliebigen Zeichen (außer \n, also einer neuen Zeile) beginnt, und mit einem Punkt gefolgt von jpg oder jpeg endet, liefert in diesem Test true, alles andere false.
Re: Frage an die PHP-Experten...
Verfasst: 15.09.2010, 11:06
von Fightmeyer
Danke. Das probier ich heute Abend mal aus. Ich werd die Prfung wahrscheinlich noch mit ner Funktion verknüpfen, die testet, ob es sich um eine gültige Bilddatei handelt, wenn die Endung stimmt. (mir ist so, als ob es da auch eine php-Funktion für gibt)
Es könnte ja auch ne txt einfach in eine jpg umbenannt worden sein...
Muss dann halt nur noch sehen, wie performant das Ganze dann noch ist.
Auf jeden Fall komm ich dann bei meiner Seite endlich von der lästigen htaccess-Authentifizierung weg. Die ist ja für den Anwender nicht sehr ansprechend und für die Rechteverwaltung auf der eigentlichen Seite auch nicht sehr komfortabel.
EDIT:Sehe ich das richtig, dass ich den Teil hier: (jpg|jpeg) auch problemlos um andere Dateiendungen erweitern kann? Also z.B. (jpg|jpeg|bmp|gif)
Re: Frage an die PHP-Experten...
Verfasst: 15.09.2010, 11:17
von elevar
Fightmeyer hat geschrieben:EDIT:Sehe ich das richtig, dass ich den Teil hier: (jpg|jpeg) auch problemlos um andere Dateiendungen erweitern kann? Also z.B. (jpg|jpeg|bmp|gif)
Das siehst du genau richtig

Re: Frage an die PHP-Experten...
Verfasst: 16.09.2010, 18:52
von Beowulf
Hier noch ein Tipp von mir:
http://httpd.apache.org/docs/current/mo ... write.html
Mit diesem Modul kann man den Aufruf der Bilddateien erleichtern. Anstatt sowas:
Code: Alles auswählen
<img src="/scripte/bild.php?bild=../geschützterOrdner/bild1.jpg"/>
... wäre dann sowas möglich:
Man verweist quasi auf eine Datei dies es nicht gibt (da das Verzeichnis "geschützterOrdner" hier nicht als Unterverzeichnis existiert). Dadurch verschleiert man auch noch mehr die Herkunft der Dateien. Damit jetzt aber auch das Script aufgerufen wird, kann man dann in der htaccess folgendes schreiben:
Code: Alles auswählen
RewriteEngine on
RewriteRule ^geschützterOrdner/(\w\.(jpg|gif|png))$ scripte/bild.php?bild=../geschützterOrdner/$1
Und da gibts noch ein Vorteil: "geschützterOrdner\test.txt" könnte nicht aufgerufen werden, da die Regel nicht für Dateien dieser Endung greift.
Re: Frage an die PHP-Experten...
Verfasst: 17.09.2010, 07:38
von Fightmeyer
Das ist ne gute Idee. Zumal ich dann auch meinen HTML/PHP-Quelltext nicht anpassen muss. Danke.
Muss nur mal schauen, ob dieses Modul auf dem Webserver installiert ist. Aber ich denke mal schon...
Re: Frage an die PHP-Experten...
Verfasst: 17.09.2010, 14:13
von Beowulf
Hier eine kleine Korrektur von mir:
Code: Alles auswählen
RewriteRule ^geschützterOrdner/(\w+\.(jpg|gif|png))$ scripte/bild.php?bild=../geschützterOrdner/$1
Hinter dem \w muss natürlich ein + stehen. Sonst würde die Regel ja nur bei Dateinamen greifen, die einen Buchstaben lang sind. Das * wäre nebenbei bemerkt auch nicht korrekt, denn dieser Wiederholungsoperator würde auch Dateinamen zulassen die kein Zeichen enthalten, also .jpg (ohne irgendwas davor) wäre demnach auch gültig.
Das + ist hier präziser, da es mindestens ein Zeichen voraussetzt.
Re: Frage an die PHP-Experten...
Verfasst: 17.09.2010, 16:49
von Fightmeyer
Das sieht bei mir jetzt folgendermaßen aus:
Code: Alles auswählen
RewriteEngine on
RewriteRule ^alben/(\w+\.(jpg|gif|png))$ ../system/bildload.php?bild=../alben/$1
Aber das klappt irgendwie nicht. Vielleicht sollte ich noch darauf hinweisen, dass ich in dem geschützen Ordner noch Unterordner habe und da die eigentlichen Bilder drinliegen. Aber wenn ich die Zeile richtig interpretiere müsste das doch trotzdem klappen, oder?
Ich hab aktuell im darüberliegenden Ordner auch noch ne htaccess. Kommen die sich eventuell in die Quere?