• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Bild auslesen mit php .htaccess

jumbo125

Member
Hallo,
wiedermal brauch ich einen Tipp von euch:

meine bisherige Fotoausgabe erfolgt aus einem Array,(wegen Blätterfunktion)indem alle JPG-Daten eines besimmten Ordners eingelesen werden...
Code:
$photopfad = "Bilder"; \\der pfad ändert sich, die Variablen definition ist nur ein Beispiel
foreach ($fotoarray as $foto){
echo '<a href="'.$photopfad.'/'.$foto.'"'> //funktioniert
}
mein Problem ist, das ich nach dem htaccess User+ Passwort gefragt werde. Wie muss ich php ins spiel bringen um die Bilder mit php, als link anzuzeigen?? Dadurch würde ich die passwort abfrage verhindern.
Wäre es ev. möglich mir ein script anstatt links zu php manuals zu schreiben??

Danke
 
Ich hab' keine Ahnung, was genau dein Problem ist. Wir kennen dein Setup nicht und können auch nicht in deinen Kopf reinschauen.
Du musst da dringend etwas detaillierter schreiben, wenn wir dir helfen sollen.

EDIT: das ist auch das falsche Forum. @SuperMod: bitte verschieben.
 
Zuletzt bearbeitet:
kurz gesagt, handelt es sich um diese eine Zeile:

Code:
<span class='ff1 cf0 fs18'><a href='".$photopfad."/".$foto." 'rel='lightbox[roadtrip]'><img src='".$thumbnailpfad."' /></a></span>";

kurz:
Code:
echo "<a href='Photoordner/photo-1.JPG' rel='lightbox[roadtrip]'><img src='thumbnail/photo-1.JPG' /></a> ";

Die Erklärung:
Die Pfade sind mittels Variablen angegeben. Das kommt daher, da alle JPG Bilder aus einen Ordner ausgegeben werden, kurz -> mittels Schleifenfunktion.

Nebensächlich:
Ich lese alle Bilder in ein Array ein, da ich eine Blätterfunktion benutze(d.h. ab einer gewissen Anzahl an Bilder, wird eine 2 Seite erstellt.) siehe hierfür http://phpforum.de/forum/showthread.php?t=218213

Nun zum eigentlichen Problem:
Mein hier angeführter Code funktioniert prima, ABER....

sobald ich eine .htaccess Datei in den Ordner mit den Bildern gebe(nicht in den mit den Thumbnails) werde ich beim öffnen des "Bilder-Links" nach dem user und passwort gefragt. Dieses Passwort und den Benutzernamen weiß jedoch NUR ich, deshalb soll die Abfrage, für die Besucher meiner Seite nicht gestartet werden. Nach langen suchen, fand ich heraus, das PHP die .htaccess Datei "egal" sei und man dadurch Bilder ausgeben kann, ohne nach Benutzernamen und Passwort gefragt zu werden.

Nun noch kurz zum Aufbau der Gallery.html seite, in der meine Bilder ausgegeben werden:
Um in die Gallery zu gelangen muss man ein VON MIR ERFUNDENES PASSWORT eingeben. Sofern dieses richtig ist, erhält man Einblick in mein Fotoalbum. Nun könnten sich schlaue Besucher auch die fotos direkt über den Browser anzeigen lassen, wenn sie www.meineDomain/Photoordner/photo-1.JPG eingeben. Daher MUSS der Ordner mittels .htaccess Datei gesichert sein, denn HIER MUSS die Passwortabfrage der .htaccess Datei erfolgen.

Hoffe nun ist alles klar.

Ps. bei der Bilder ausgabe handelt es sich um eine lightbox, daher er link...
 
EDIT: das ist auch das falsche Forum. @SuperMod: bitte verschieben.

Wenn ich so einen Thread lese, verschiebe ich ihn auch.
Wenn ich ihn nicht lese, kann ich auch Deine Aufforderung nicht lesen ... ;)
Aus diesem Subforum verschiebe ich pro Woche bestimmt 10-15 Threads, weil manche Leute offenbar nicht richtig lesen können.
 
Anstelle des Bildes (jpg) muß du ein PHP-Script aufrufen, welches dir dein Bild aus deinem geschützten Ordner holt und ausliefert. Da PHP über das Dateisystem des Servers zugreift, unterliegt es nicht dem Verzeichnisschutz des Web-Servers.
Noch einfacher wird es, wenn man mit .htaccess + .htpasswd gleich Script incl. Bilderordner schützt.
 
Ein PHP-Skript zu schreiben, das deinen Verzeichnisschutz umgeht ist doch widersinnig - da kannst du den Schutz doch gleich weglassen.
Ich unterstützte den letzten Satz von jspit.
 
Um sein script zu benutzen, hat er ja sein eigenes Login. Sofern hat das schon ein wenig Sinn, die Bilder sollten z.B. von den div. Bots nicht erfasst werden.
 
Ein PHP-Skript zu schreiben, das deinen Verzeichnisschutz umgeht ist doch widersinnig - da kannst du den Schutz doch gleich weglassen.
Wieso?
Nur weil ein Verzeichniss geschützt ist, kann man doch durchaus ein PHP Skript auf einzelne Resourcen zugreifen lassen, es wird dadurch ja nicht ungeschützt. Zumal er ja über das PHP Skript einen Paßwortschutz realisieren will.

Aber das Skript greift ja nicht auf die Bilder zu, sondern erzeugt lediglich ein IMG Element, das wiederrum kann dann nicht mehr den Schutz umgehen. D.h. du musst für die anzeige des Elements ein entsprechendes Skript schreiben, dass die Bilder liest und ausgibt.
 
Dann würde ich aber die Bilder gleich irgendwohin legen, wo man über den Webserver gar nicht direkt zugreifen kann.

Ich hatte das so verstanden, dass das Wrapperskript, dass den Schutz "umgeht", dann komplett frei erreichbar ist. Und ob ein Bild jetzt direkt oder über so einen Wrapper erreichbar ist, ist den Bots herzlich egal.
 
hab es schon bzw. eine idee

Es geschieht nun so:
die bilder ausgabe geschieht in einer foreach schleife, da die fotos in einen array sind. in dieser schleife wird eine $bildernameview.php Datei erstellt. d.h. wenn ich 50 bilder habe,werden 50 view.php dateien erstellt. Der inhalt jeder Datei ist ein script aus lediglich 3 zeilen:
<?php
header...
readfile($bildername) \\das ist der gleiche Name, der im Dateinamen steht. bspw. würde in "image-04view.php" der Code: readfile(image-04.jpg) stehen...
?>


Das letzte Problem war, das man nun jederzeit auf die Datei zugreifen könnte. Das löse ich dadurch, dass ich noch eine extra Zeile in die view.php Datei schreibe, welche überprüft ob eine bestimmter Session-wert vorhanden ist. Dieser Wert wird natürlich NUR dann vergeben, wenn MEINPASSWORT(zum betreten der gallery.html datei) korrekt eingegeben wurde.
 
Dann würde ich aber die Bilder gleich irgendwohin legen, wo man über den Webserver gar nicht direkt zugreifen kann.
Ja, würde ich auch.
Aber ich habe schon Webserver gesehen, auf denen gab es keine "internen" Verzeichnisse.
Solche User können also nur auf htaccess und Co. zurückgreifen, um Inhalte zu schützen.
Und ganz ehrlich: Ich würde den Provider wechseln. Ein fehlendes internes Verzeichnis zu workarounden ist Bullshit ;)
Das letzte Problem war, das man nun jederzeit auf die Datei zugreifen könnte. Das löse ich dadurch, dass ich noch eine extra Zeile in die view.php Datei schreibe, welche überprüft ob eine bestimmter Session-wert vorhanden ist. Dieser Wert wird natürlich NUR dann vergeben, wenn MEINPASSWORT(zum betreten der gallery.html datei) korrekt eingegeben wurde.
Das ist alles etwas von hinten durch die Brust ins Auge.
Hast du mal überprüft, ob auf dem Server nicht ein internes Verzeichnis zur Verfügung steht?
Dann kannst du die Bilder dort hinlegen und alles über eine passwortgeprüfte PHP Oberfläche steuern.
Ganz ehrlich habe ich noch nicht verstanden, in welchen Fällen wer genau auf die Bilder zugreifen können soll.
Könntest du das Berechtigungskonzept in Gruppen unterteilt mal genauer beschreiben?
 
Zuletzt bearbeitet:
Für das Verständins nochmals:

Gehen wir davon aus, dass ich(Fotograf) dir meine Fotos zeigen will...:d
Dann gebe ich dir meine HomepageAdresse... Du gibst nun die Adresse ein und siehst, das du NUR 1 Zeile und fünf Fotoalben zur Verfügung hast. Ich gebe dir nun das Passwort für ALBUM1.
Nachdem du dir die Bilder angesehen hast, versuchst du in die restlichen Alben hineinzukommen --> Fehler, da du nur das Passwort von dem ALBUM1 kennst.
Da du dich ein wenig auskennst, gibst du nun in die Adressleiste www.meinedomain/ALBUM2/image-01.jpg ein --> --> --> NUN siehst du auch die Fotos von ALBUM2, die du nicht sehen DARFST. :(

Hier kommt die .htaceess datei ins spiel, die deine geniale Idee durchkreuzt. :cool:

Leider auch meine, da die .htaccess Datei auch meine script ausgabe durchkreuzt:( --> Deswegen benötige ich eine PHP ausgabe, die ich nun schon fast habe:D

nun wird eine view.php datei erstellt, d.h. du kommst gar nicht in den Ordner mit den Bildern, sondern nur in den mit den view.php Daten.

Da du (wie bereits erwähnt) dich auskennst, gibst du nun www.meinedomain/ALBUM2/php/image01view.php ein --:mad: Das script wird ausgeführt und du siehst das Bild:(

nun die Idee, beim korrekten eintreten in das jeweilige Album(in deinem Fall ALBUM1) wird eine SESSION definiert. Diese wird in der view.php Datei abgefragt. D.h. würdest du die Datei über die Adressleiste anzeigen, würdest du einen Fehler bekommen, da die SESSION nicht definiert wurde.
 
OK, verstanden.
Und wieso bildest du das nicht in PHP exakt genau so ab wie du es beschreibst?
Man schreibe ein PHP Adminscript.
Das ist mit Adminpasswort zugänglich. Da gibt es einen Menüpunkt "Einmalzugang". Dieser Menüpunkt fragt nach der Gallerie und gibt dann ein Paßwort aus. Dieses ist X Tage gültig und wird in einer Datei/DB gespeichert.
Dein Kunde ruft das Adminscript auf und gibt das Einmalpasswort ein. Script zeigt die zugeordneten Bilder an.
Ich bin immer für Lösungen, die den gewünschten Prozess genau abbilden. Und nicht für Kompromisse, die an den gewünschten Ablauf herankommen.
Der Mischmasch mit htaccess und PHP ist weder wartungsfreundlich noch wird er dauerhaft zufriedenstellend sein. Von Portabilität mal ganz zu schweigen.
 
Der Mischmasch mit htaccess und PHP ist weder wartungsfreundlich noch wird er dauerhaft zufriedenstellend sein. Von Portabilität mal ganz zu schweigen.
Eine Alternative zur htaccess wäre noch eine Verzeichnisstruktur, welche ein Unterverzeichnis als Basis für den Webserver nutzt.
Das Übergeordnete und alle 'Nachbarverzeichnisse' sind dann auch nicht über den Webserver erreichbar, dort abgelegte Dateien sind dann auch ohne htaccess geschützt. Das ist aber auch nicht immer realisierbar.
So wie es jumbo125 in #13 beschreibt wird es aber oft gemacht, mit dem kleinen Unterschied, daß nicht für jedes Bild eine .php erstellt wird. Dafür reicht ein script, welches über einen GET-Parameter den Bildnamen oder eine id mitbekommt. Das ganze kann man noch verschleiern, indem über die htacess (Stichwort RewriteEngine) das script als bild25.jpg angesprochen wird, was dann zu bildscript.php?id=25 umgeschrieben wird.
 
Zuletzt bearbeitet:
Zurück
Oben