Seite 6 von 7
Re: Frage an die PHP-Experten...
Verfasst: 18.09.2010, 13:34
von Fightmeyer
Beowulf hat geschrieben:Was genau klappt denn nicht?
Naja. Sobald ich diese Zeile in die htaccess einfüge "deny from all" klappt der Aufruf der Bilder nicht mehr. Sieht also stark danach aus, dass dann nicht mehr auf das Verzeichnis zugegriffen werden kann. Auch nicht mehr über das PHP-Bilder-Lade-Script
Re: Frage an die PHP-Experten...
Verfasst: 18.09.2010, 13:45
von Beowulf
Dies ist seltsam. Aber das Script selber liegt ja in einem anderen Verzeichnis, oder? Wäre gut, wenn du mal eine Übersicht der Verzeichnisse hier reinstellen könntest.
Re: Frage an die PHP-Experten...
Verfasst: 18.09.2010, 21:06
von Fightmeyer
Das sieht bei mir so aus:
root -> htaccess, die nur bestimmte Nutzer reinlässt
root\alben\ -> htaccess, wie hier im Thread besprochen
root\system\ da liegt die bildload.php
root\scripte\*.php -> da liegen die diversen phps, in denen dann die Aufrufe der Bilder drinstehen
Re: Frage an die PHP-Experten...
Verfasst: 18.09.2010, 23:46
von Beowulf
Verstehe. Wie sieht denn die htaccess vom Root-Verzeichnis aus? Und gewöhne dir bitte, bitte auch mal an, Fehlermeldungen anzugeben!

Wenn der Aufruf der Bilder nicht klappt, muss das PHP-Script bildload.php ja schließlich Fehlermeldungen ausspucken, oder? Auch kann das Lesen dieser Meldungen auch dir allein schon stark weiterhelfen.
Re: Frage an die PHP-Experten...
Verfasst: 19.09.2010, 13:50
von Fightmeyer
Das Script scheint ja gar nicht erst ausgeführt zu werden. Demnach gibts auch keine PHP-Fehlermeldung.
Die htaccess in der Root sieht so aus:
Code: Alles auswählen
<IfModule mod_php.c>
php_value display_errors 1
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>
ErrorDocument 401 /index.php
ErrorDocument 400 /index.php
ErrorDocument 403 /index.php
ErrorDocument 500 /index.php
ErrorDocument 404 /index.php
<Files index.php>
satisfy any
</Files>
<Files *.css>
satisfy any
</Files>
<Files *.*>
require valid-user
</Files>
AuthName "Benutzeranmeldung:"
AuthType Basic
AuthGroupFile /pfad/.htgroups
AuthUserFile /pfad/.htusers
Wenn ich mit der kompletten htacces im Albenordner allerdings mal direkt die bildload.php im Browser aufrufe, ("
http://domain.de/system/bildload.php?bi ... 000003.jpg"), dann zeigt er das Bild an. Kann man das noch erklären? Das scheint ja dann so, dass das Linkumbiegen mit der Deny-Option dann irgendwie nicht mehr richtig funktioniert.
Re: Frage an die PHP-Experten...
Verfasst: 19.09.2010, 21:46
von Beowulf
Danke erstmal für die Infos!
Dies ist eigentlich so, wie es sein sollte. Nur dass die Anzeige in deiner PHP-Seite nicht funktioniert, ist sehr verwunderlich. Sind die Image-Tags vielleicht nicht korrekt? Vielleicht irgendein Tippfehler oder so. Oder aktualisier einfach mal die Seiten, vielleicht schwirrt da was falsches im Cache rum.
Wenn du da nichts findest, wäre der Code der bildload.php für mich vielleicht hilfreich. Ich kann mir einfach nicht vorstellen, das eine htaccess-Datei in "alben" eine Auswirkung auf Links zum Verzeichnis "system" hat.
Re: Frage an die PHP-Experten...
Verfasst: 20.09.2010, 11:54
von Fightmeyer
Also meine Bildload.PHP ist bisher recht rudimentär:
Code: Alles auswählen
<?php
$datei=fopen($_GET['bild'],r);
echo fread($datei,1500000);
fclose($datei);
?>
Wie gesagt: Ohne "deny from all" in der Albenordner-htaccess klappt das auch tadellos. Und wenn ich die bildload.php direkt verwende ja auch.
Für mich scheint es so, dass durch den Eintrag "deny from all", auch die ReWriterule außer Kraft gesetzt wird. Das würde zumindest dieses Verhalten erklären.
Nochmal zur Verdeutlichung: Das "deny from all" steh in der gleichen htaccess, wie auch die Rewriterule und die liegt im Albenorder.
EDIT: Ich hab das ürbigens mal ebend mit nem frisch aufgesetzem Xampp auf meinem lokalen Rechner getestet. Genau das gleiche Verhalten.
Re: Frage an die PHP-Experten...
Verfasst: 20.09.2010, 16:09
von Beowulf
Fightmeyer hat geschrieben:Für mich scheint es so, dass durch den Eintrag "deny from all", auch die ReWriterule außer Kraft gesetzt wird. Das würde zumindest dieses Verhalten erklären.
Nein, denn dann würde auch der direkte Aufruf über die Adressleiste des Browsers nicht funktionieren.
Wie wirkt sich denn das "Nichtanzeigenkönnen" genau aus? Sind die Bilder einfach nur nicht da, der Rest der Seite schon?
Ich habe eher die Vermutung, dass die RewriteRule überhaupt nicht greift, und du mit den Scripten direkt auf die Bilder zugreifst. Dies kannst du testen, indem du das echo fread.... in der bildload.php bei deaktivierter htaccess auskommentierst.
Re: Frage an die PHP-Experten...
Verfasst: 20.09.2010, 20:07
von Fightmeyer
Beowulf hat geschrieben:
Wie wirkt sich denn das "Nichtanzeigenkönnen" genau aus? Sind die Bilder einfach nur nicht da, der Rest der Seite schon?
Ja genau so. Es wird dieses Browser-Standardymbol angezeigt für "broken Picture". Der Rest der Seite wird ganz normal gerendert.
Beowulf hat geschrieben:
Ich habe eher die Vermutung, dass die RewriteRule überhaupt nicht greift, und du mit den Scripten direkt auf die Bilder zugreifst. Dies kannst du testen, indem du das echo fread.... in der bildload.php bei deaktivierter htaccess auskommentierst.
Stimmt. Dem ist tatsächlich so. Was könnte denn jetzt noch die Ursache dafür sein?
Re: Frage an die PHP-Experten...
Verfasst: 20.09.2010, 23:06
von Beowulf
Ok, fühlen wir dem Ganzen noch mal etwas genauer auf dem Zahn, könnte ja alles an einem einfachen Tippfehler liegen:
Stell noch mal die htaccess mit der RewriteRule möglichst komplett hier rein und gib das Verzeichnis an in dem sie abgespeichert ist, dann mal ein typischen Image-Tag aus der PHP-Datei und auch deren Verzeichnis.
Re: Frage an die PHP-Experten...
Verfasst: 21.09.2010, 20:02
von Fightmeyer
Beowulf hat geschrieben:
Stell noch mal die htaccess mit der RewriteRule möglichst komplett hier rein
Code: Alles auswählen
RewriteEngine on
RewriteRule ^\.\./alben/((\w+/)*\w+\.(jpg|gif|png))$ ../system/bildload.php?bild=../alben/$1
deny from all
Beowulf hat geschrieben:
und gib das Verzeichnis an in dem sie abgespeichert ist,
www.meinedomain.de/alben
Beowulf hat geschrieben:
dann mal ein typischen Image-Tag aus der PHP-Datei und auch deren Verzeichnis.
<img src="/../alben/9/thumbs/th_cimg3350.jpg">
Liegt unter
www.meinedomain.de/scripte
Re: Frage an die PHP-Experten...
Verfasst: 22.09.2010, 00:12
von Beowulf
Ok, hier mein Änderungsvorschlag:
Die RewriteRule liegt für mein Verständnis im falschen Verzeichnis. Ich würde sie ins Root-Verzeichnis packen. Denn ich kann mir gut vorstellen, dass eine htaccess, die in einem Verzeichnis liegt auf das man nicht zugreifen darf, nicht aktiv ist.
Auch ist die RewriteRule für dieses Verzeichnis nicht korrekt, denn das Verzeichnis wird ja nicht über alben/../alben angesprochen, sondern
direkt. Folgender reguläre Ausdruck wäre demnach korrekt gewesen:
Code: Alles auswählen
RewriteEngine on
RewriteRule ^((\w+/)*\w+\.(jpg|gif|png))$ ../system/bildload.php?bild=../alben/$1
Aber ich würde stattdessen einfach vorschlagen, die RewriteRule ins Root zu packen:
Code: Alles auswählen
RewriteEngine on
RewriteRule ^alben/((\w+/)*\w+\.(jpg|gif|png))$ system/bildload.php?bild=../alben/$1
Dann bleibt nur das im alben-Verzeichnis übrig:
Re: Frage an die PHP-Experten...
Verfasst: 22.09.2010, 19:39
von Fightmeyer
Habs gerade ausprobiert. Klappt leider auch nicht. Die Bilder werden als "broken" angezeigt. Die Rewriterule scheint also nach wie vor nicht zu greifen. Es ist echt zum Verzweifeln.
Hast Du noch ne Idee, was man noch machen könnte?
Wenn das alles nicht klappt, dann werd ich die links im Quelltext "hart" auf die bildload.php umkodieren. Dann gehts halt nicht anders.
P.S. Danke für Deine Geduld Beowulf...
Re: Frage an die PHP-Experten...
Verfasst: 23.09.2010, 03:07
von Beowulf
Kein Problem!

Es wäre mal auszutesten, ob die RewriteEngine überhaupt aktiv ist. Schreib mal folgendes in die htaccess vom Root:
Hier wird test.html auf index.php umgeleitet. Die test.html sollte keine existierende Datei sein, die index.php schon. Sollte keine index.php bei dir existieren, nimm einfach den Namen irgendeiner anderen existierenden Datei. Willst du jetzt auf
http://www.meinedomain.de/test.html zugreifen, müsste die Indexseite aufgerufen werden. Wenn nicht, dann haben wir ein Problem!

Re: Frage an die PHP-Experten...
Verfasst: 26.09.2010, 11:45
von Fightmeyer
Also das hat funktioniert. Grundsätzlich scheint die Umleitung also zu klappen. Dann ist vielleicht doch noch irgendein Fehler in der ReWriteRule vorhanden...