Ankündigung

Einklappen
Keine Ankündigung bisher.

Bilder "schützen"

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bilder "schützen"

    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:

    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); }

  • #2


    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.


    Ich mach meine "OR"'s immer so ... "||" ... hatte soweit ich weiß irgendwelche vorteile ... ??!! ...

    PHP-Code:
    <?php
    if ($_SESSION["clearance"]==$data["CLEARANCE"] || $_SESSION["cfriend"]==$data["CFRIEND"] || $_SESSION["cfamily"]==$data["CFAMILY"]){ 
    ...
    }

    ?>

    Kommentar


    • #3
      http://de.php.net/operators

      zu deinem || - Operator

      Vorteile (oder Nachteile?) ist die Rangfolge wie bei + und * (kennt man ja aus der Mathematik) und Klammern etc.

      Kommentar


      • #4
        Jupp genau wusst ich's doch

        Kommentar


        • #5
          Wat wie wo?

          Also wirklich || hat wohl keine Vorteile gegenüber OR ... das ist Geschmackssache! Wenn es wirklich um die Rangfolge geht sollten Klammern gesetzt werden um später leichter zu verstehen was mit welchen Bedingungen verknüpft ist!

          Ich persöhnlich verwende immer OR da es meiner Meinung nach den Code lesbarer macht! Es heißt ja auch IF und es ist nicht eine Zeichenfolge!

          IF ... OR ...
          IF ... || ...

          Daher passt das obere Bsp besser ... naja wie gesagt Geschackssache!

          *edit*
          Um mal auf deine Frage zu antworten:

          Das ist ebenfalls Geschmackssache! Du kannst deine IF Abfrage so lassen! Drei verschiedene Bedingungen sind keine lange IF Abfrage! Wenn du Angst um die Performance hast dann brauchste da wirklich nicht dran denken das ist kein wirklicher Zeitaufwand so eine Abfrage zu parsen ...

          Ne andere Möglichkeit wäre du hast eben für jede "cleareance" oder wie du es nennst eine eigene Spalte in der Usertabelle ... also
          Friends, Family, Guest wie auch immer! Und setzt es eben 1 oder 0 je nach Berechtigung. Und beim User wird jedes mal gecheckt ob er halt die jenige Flag, so bezeichnet man die bestimmten Rechte, hat oder nicht.

          Kommentar

          Lädt...
          X