Hallo,
ich bin am überlegen, wie ich Fotos nur bestimmten Nutzern meiner Webseite zugänglich machen kann.
Bislang habe ich das so gelöst: In einer MySQL-DB stehen sowohl die User als auch die Bilder drin. Die User haben einen "Status", der die entsprechenden Berechtigungen repräsentiert (User mit clearance "friend" darf Bilder mit clearance "friend" anschauen usw). Die Bilder werden dann mit imagecreatefromjpeg dynamisch generiert.
Meine Frage (da ich kein PHP Profi bin): Die User bekommen beim Login ein Cookie (Session ID) zugewiesen und das Skript, das die Bilder generiert, checkt dann ob die clearance der Bilder mit der des Users bzw. der aktuellen Session ID übereinstimmt.
Leider habe ich als Code eine recht lange if-Schleife. Da ich manchen Usern auch mehrere Berechtigungen zuweisen möchte, kann man das irgendwie eleganter lösen? Evtl. auch mit einem anderen System als nur dieser clearance? Im MySQL kann ich dem Feld clearance ja nur einen Wert zuweisen. Daher hatte ich dann noch die Felder cfriend und cfamily eingeführt, die dann auf 1 oder 0 stehen.
Hier ein Code-Auszug, der die clearance checkt und das Bild generiert:
ich bin am überlegen, wie ich Fotos nur bestimmten Nutzern meiner Webseite zugänglich machen kann.
Bislang habe ich das so gelöst: In einer MySQL-DB stehen sowohl die User als auch die Bilder drin. Die User haben einen "Status", der die entsprechenden Berechtigungen repräsentiert (User mit clearance "friend" darf Bilder mit clearance "friend" anschauen usw). Die Bilder werden dann mit imagecreatefromjpeg dynamisch generiert.
Meine Frage (da ich kein PHP Profi bin): Die User bekommen beim Login ein Cookie (Session ID) zugewiesen und das Skript, das die Bilder generiert, checkt dann ob die clearance der Bilder mit der des Users bzw. der aktuellen Session ID übereinstimmt.
Leider habe ich als Code eine recht lange if-Schleife. Da ich manchen Usern auch mehrere Berechtigungen zuweisen möchte, kann man das irgendwie eleganter lösen? Evtl. auch mit einem anderen System als nur dieser clearance? Im MySQL kann ich dem Feld clearance ja nur einen Wert zuweisen. Daher hatte ich dann noch die Felder cfriend und cfamily eingeführt, die dann auf 1 oder 0 stehen.
Hier ein Code-Auszug, der die clearance checkt und das Bild generiert:
Code:
if ($_SESSION["clearance"]==$data["CLEARANCE"] OR $_SESSION["cfriend"]==$data["CFRIEND"] or $_SESSION["cfamily"]==$data["CFAMILY"]){
$image=$data["DIRECTORY"]."/".$_GET["nummer"].".jpg";
Header("Content-type: image/jpeg");
$im = imagecreatefromjpeg($image);
Imagejpeg($im,'',85);
ImageDestroy($im); }

Kommentar