bloz.de
Olzos kleiner Weblog | Login | Wiki | Impressum

Wed, 25.02.2009
Community-Fotos

Folgendes Problem: Benutzer können in einem Community-Bereich Bilder hochladen. Diese Bilder sollen entweder a) öffentlich sein (zum Rumzeigen auch bei Freunden, die nicht in der Community sind), oder b) nur die anderen Community-Teilnehmern sehen können - alle anderen (einschliesslich Suchmaschinen) aber nicht.

Der Web-Server Apache stellt für solche geschützten Bereiche htaccess zur Verfügung. Eine Möglichkeit ist nun, jedem Benutzer einen eigenen htaccess-Account inkl. Passwort zu verpassen (kann teils automatisiert werden). Das ist aber für beide Seiten umständlich: erneute Sicherheitsabfrage für den Benutzer, knifflige Serveranpassungen z.B. bei Passwortänderungen.

Ich habe mich für eine andere Möglichkeit entschieden: das Bild unterschiedlich darstellen zu lassen; je nachdem, ob man angemeldet ist oder nicht.

Es gab dabei einige Fallstricke; deshalb notier ich das hier nochmal als kleine Anleitung, vielleicht ist es ja mal jemandem hilfreich.

1.) auf dem Webserver (Suse-Linux, Apache2) /etc/sysconfig/apache2 öffnen und in der Zeile
APACHE_MODULES="access actions alias auth auth_dbm autoindex cgi dir env
expires include log_config mime negotiation setenvif ssl suexec userdir
php4"
ein rewrite einfügen, also
APACHE_MODULES="access actions alias auth auth_dbm autoindex cgi dir env
expires include log_config mime negotiation setenvif ssl suexec userdir
php4 rewrite"
(Entfällt, falls mod_rewrite bei Euch schon eingebunden ist).

2.) wird immer wieder gerne vergessen: neustarten...
/etc/init.d/apache2 restart

3.) die Fotos liegen im Verzeichnis /upload/ - dorthin kopiere ich eine Datei htaccess. mit dem Inhalt:

<FilesMatch "jpg$">
RewriteEngine On
RewriteRule (.*)\.(jpg)$ /showupload.php?id=$1
</FilesMatch>

Zugriffe auf Fotos im Uploadverzeichnis werden also generell auf ein Skript /showupload.php umgeleitet.

4.) in $id steckt noch der ganze Serverpfad mit drin ... da es immer derselbe ist, kann ich in mittels substr() abschneiden (s.u. - anpassen).

<?
$id = substr($_GET["id"],36,50);
$fil="upload/$id.jpg";
if ($fp = @fopen($fil,"r")) {
$db = @mysql_connect ( $servername, $serveruser, $serverpw );
$q = "select hidden from upload where id='$id'";
$erg = mysql_db_query( $serverdb, $q) or die(mysql_error());
if (mysql_result($erg,0,"hidden")==1 && $_COOKIE["community"]<1) {
fclose( $fp);
$fp = fopen("upload/hidden.jpg","r");
}
header("Content-Type: image/jpeg");
imagejpeg(fpassthru($fp),"",100);
fclose($fp);
}
?>

Voraussetzungen hier sind: -
eine SQL-Tabelle UPLOAD, u.a. mit ID=Dateiname und HIDDEN=1, falls nicht öffentlich
- ein Cookie ("community") das gesetzt ist, wenn man angemeldet ist (mit "/" über Verzeichnisgrenzen hinaus)
- eine Datei upload/hidden.jpg die angezeigt wird, wenn man nicht eingeloggt ist (z.B. Test "nur für Mitglieder der Community").

Viel Erfolg!

WWW | Internet



Kommentare willkommen!  »
Login  »ohne Login


Bloz Startseite
Blogrolle & Links

Kategorien
Politik (19)
Geschichte (44)
WWW (33)
Musik (43)
Fotos (30)
Laufen (28)
Wissen (25)
Jahreszeiten (24)
Zeitgeschehen (10)
Sprache (16)
Nonsens (30)
TV (7)
Tiere (4)
Buch (2)



Regionen
Deutschland (43)
Wuppertal (61)
Internet (34)
home (53)
Weltraum (3)
Bergisches Land (3)
Burgholz (48)
Europa (5)
Welt (19)
Ägypten (2)
Eulenkopfweg (11)



Einträge
07.09.2010 NGO im Kanzleramt
02.09.2010 E400
30.08.2010 Domain geflasht
28.08.2010 Holiday
12.06.2010 iPad
11.06.2010 Wuppertaler Eisbären
01.06.2010 Musik Mai 2010
17.05.2010 Burg Elberfeld
13.05.2010 Internet kaputt
10.05.2010 NRW Wahl 2010
03.05.2010 Musik April 2010
02.05.2010 zu Fuss zum Mars
01.04.2010 Musik März 2010
19.03.2010 Wissenfloater Schwebebahn
14.03.2010 Pi-Day 3-14
11.03.2010 die Tulpe
05.03.2010 Musik Jahresanfang 2010
18.02.2010 Thunderbird 3
13.02.2010 August Reinsdorf
29.01.2010 UTF-8
28.01.2010 Blitze auf Schloss Burg
23.01.2010 Wuppertal stirbt
22.01.2010 Winter 09/10
22.12.2009 2009
21.12.2009 Musik Jahresende 2009
30.11.2009 November Sky
17.11.2009 Middelburg
16.11.2009 Musik Herbst 2009
11.11.2009 Martin von Tours
10.11.2009 Labyrinth
08.11.2009 mehr Buchstaben
07.11.2009 BauMauer
06.11.2009 Musik Sommer 2009
05.11.2009 mehr Schilder
21.07.2009 grün-gelber Vogel
06.07.2009 Musik Juni 2009
30.06.2009 Pina Bausch
15.06.2009 Calvin 500, Barmer Erklärung 75
04.06.2009 Musik Mai 2009
19.05.2009 Burgholz Impression
18.05.2009 Sorgentelefon
01.05.2009 Musik April 2009
30.04.2009 Schnecke
04.04.2009 die Bates
13.03.2009 Bernsteinzimmer
05.03.2009 Musik Februar 2009
25.02.2009 Community-Fotos
21.02.2009 Zillertal
14.02.2009 1234567890
11.02.2009 Else Lasker-Schüler
mehr...



monatsweise
Archiv 09/2010
Archiv 08/2010
Archiv 07/2010
Archiv 06/2010
Archiv 05/2010
Archiv 04/2010
Archiv 03/2010
Archiv 02/2010
Archiv 01/2010
Archiv 12/2009
Archiv 11/2009
Archiv 10/2009
Archiv 09/2009
Archiv 08/2009
Archiv 07/2009
Archiv 06/2009
Archiv 05/2009
Archiv 04/2009
Archiv 03/2009
Archiv 02/2009
Archiv 01/2009
Archiv 12/2008
Archiv 11/2008
Archiv 10/2008
Archiv 09/2008
Archiv 08/2008
Archiv 07/2008
Archiv 06/2008
Archiv 05/2008
Archiv 04/2008
Archiv 03/2008
Archiv 02/2008
Archiv 01/2008
Archiv 12/2007
Archiv 11/2007
Archiv 10/2007
Archiv 09/2007
Archiv 08/2007
Archiv 07/2007
Archiv 06/2007
Archiv 05/2007
Archiv 04/2007
Archiv 03/2007
Archiv 02/2007
Archiv 01/2007
Archiv 12/2006
Archiv 11/2006
Archiv 10/2006
Archiv 09/2006
Archiv 08/2006
Archiv 07/2006