Bilder nur anzeigen, wenn eingelogged
jobo
- php
Hallo,
da der Apache Passwortschutz ja wohl nur mit Nutzername _und_ Passwort anbietet (hier soll nur eine Loginparole eingegeben werden), müsste man mit PHP wohl alle Anfragen im Verzeichnis per .htaccess auf eine session-control.php umleiten, die dann schaut, ob die login-session aktiv ist, und mit
if (isLoggedIn()) {
$image = file_get_contents("/path/to/image.jpg");
header('Content-Type: image/jpeg');
echo $image;
}
dann das Image ausgeben, oder?
Macht das "Performanceprobleme" bei 50 thumbnails pro Seite?
Gruß
jobo
Hallo Jobo,
if (isLoggedIn()) {
$image = file_get_contents("/path/to/image.jpg");
header('Content-Type: image/jpeg');
echo $image;
}
Macht das "Performanceprobleme" bei 50 thumbnails pro Seite?
so wie Du es machst, ja.
if (isLoggedIn()) {
header('Content-Type: image/jpeg');
[link:http://de2.php.net/manual/de/function.fpassthru.php@title=fpassthru]("/path/to/image.jpg");
}
Hierbei wird kein Speicher für eine Variable angelegt. Die Ausgabe wird direkt dem Ausgabepuffermechanismus PHPs übergeben. Darüber hinaus ist die Angabe der Byte-Größe der Ressource erforderlich:
if (isLoggedIn()) {
clearstatcache();
$f="/path/to/image.jpg";
if(file_exists($f)){
header('Content-Type: image/jpeg',true,200);
header('Content-Length: '.filesize($f));
fpassthru($f);
}
else{
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found',true,404);
}
}
Gruß aus Berlin!
eddi