Userrechte - wie realisieren ?

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

  • Userrechte - wie realisieren ?

    Ich möchte meinen Usern Userrechte vergeben, wobei ich Checkboxen verwenden will, für jeweilige Kategorien, wie zum Beispiel News, Artikel und so weiter. Nun wüsst ich aber nicht wie ich das tun könnte, da ich vorher nie mit Checkboxen und derartigem gearbeitet habe. Ich hatte schon die Idee eine extra Tabelle anzufertigen, wo die zu administrirende Kategorien aufgelistet sind, aber da diese ja alle eine eigene ID hätten, weiß ich nicht wie ich das den jeweligen User anpassen könnte, ihn für diese oder diese Kategorie Rechte zu geben. Wäre nett, wenn ihr ein paar Vorschläge posten könntet.

  • #2
    Hmm
    Also machst ne Tabelle wo die User drin stehen

    eine spalte nennste "rights"

    und machst dann ne if abfrage wie der wert halt sein soll

    zbs

    if ($rights == "master")

    Hoffe es kann dir einigermassen helfen

    Gruss Skaschy

    Kommentar


    • #3
      eine tabelle mit usern hast du schon (ich nenn den prinärschlüssel mal user_id)

      dann machst du eine tabelle mit kategorien
      Code:
      kategorien
      kat_id | kat_text
      1      | news anlegen
      2      | news bearbeiten
      3      | news löschen
      4      | private nachrichten senden
      und zu guter letzt noch ne tabelle
      Code:
      rechte_id | user_id | kat_id
      1         | 1       | 1
      2         | 1       | 2
      3         | 1       | 3
      4         | 2       | 1
      5         | 2       | 4
      6         | 3       | 1
      7         | 3       | 2
      jetzt kannst du das wunderbar zuordnen

      skaschys variante find ich persönlich weniger gut, weil das dann unflexibel is, wenn du rechte gezielt verteilen willst
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        hmm oder so =)

        @mrhappiness
        sollte auch nur n bsp. sein =)

        Kommentar


        • #5
          Original geschrieben von Skaschy
          Hmm
          Also machst ne Tabelle wo die User drin stehen

          eine spalte nennste "rights"

          und machst dann ne if abfrage wie der wert halt sein soll

          zbs

          if ($rights == "master")

          Hoffe es kann dir einigermassen helfen

          Gruss Skaschy
          So weit bin ich auch gekommen, doch das hilft auch nicht, da ich ja keine Kategorie spezifieren will, sondern Usern einer Kategorie zuordnen möchte.

          Kommentar


          • #6
            Original geschrieben von mrhappiness
            eine tabelle mit usern hast du schon (ich nenn den prinärschlüssel mal user_id)

            dann machst du eine tabelle mit kategorien
            Code:
            kategorien
            kat_id | kat_text
            1      | news anlegen
            2      | news bearbeiten
            3      | news löschen
            4      | private nachrichten senden
            und zu guter letzt noch ne tabelle
            Code:
            rechte_id | user_id | kat_id
            1         | 1       | 1
            2         | 1       | 2
            3         | 1       | 3
            4         | 2       | 1
            5         | 2       | 4
            6         | 3       | 1
            7         | 3       | 2
            jetzt kannst du das wunderbar zuordnen

            skaschys variante find ich persönlich weniger gut, weil das dann unflexibel is, wenn du rechte gezielt verteilen willst
            Okay, vielen dank, diese Variante gefällt mir schon viel besser.

            Kommentar


            • #7
              Hmm, also ich hab jetzt die Tabellen erstellt:

              Code:
              mysql_query("CREATE TABLE $user_cat_tname (
                 		id int(11) NOT NULL auto_increment,
                		PRIMARY KEY (id),
                 		name varchar(80) DEFAULT '' NOT NULL
              )");
              
              mysql_query("CREATE TABLE $user_rights_tname (
                 		id int(14) NOT NULL auto_increment,
                		catid int(11) DEFAULT '0' NOT NULL,
                 		userid int(11) DEFAULT '0' NOT NULL,
              		PRIMARY KEY (id)
              )");
              Zuordnen tu ich die Rechte folgender Maßen:

              PHP-Code:
              while ($cat mysql_fetch_array($rights)) { echo "<input type='checkbox' class='checkbox' name='catid2'> $cat[name] "; } 
              Und so in der Tabelle hinzugefügen:

              [PHP]
              mysql_query("INSERT INTO $user_rights_tname (catid, userid) VALUES ('$catid2', '$userid')");

              2 Kategorien habe ich in der Checkbox makiert und ausgewählt. Nun steht in der $user_rights_tname-Tabelle folgendes:

              ID: 1 CATID: 0 Userid: 1

              Und das Prinzip verstehe ich nicht, da ja die Checkbox doch mehrere Variablen haben müsste, desto mehr ausgewählt wird. Wähle ich nur eine Checkbox aus funktioniert es, aber dazu bräuchte ich ja auch keine Checkbox. Was kann ich tun ?

              Kommentar


              • #8
                da ja die Checkbox doch mehrere Variablen haben müsste, desto mehr ausgewählt wird.
                richtig erkannt. deswegen nennt man seine db auch im html einfach cb[] . somit hast du ein array in php zur verfügung, welches du mit einer schleife durchläufst.

                OffTopic:
                mal am rande. jetzt wo du nicht mehr den anderen thread nutzt, musst du nicht zwingend hier das gleiche veranstalten, was schon im anderen thread gelaufen ist. nur mal so am rande.
                im übrigen steht noch was in anderen thread von dir aus.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Kurze Frage: Mit dem Array werden doch dann mehrere Datensätze, also pro gewählte Kategorie in der Checkbox, ein Datensatz, hinzugefügt ?

                  Kommentar


                  • #10
                    Original geschrieben von jOhnny knOx
                    Kurze Frage: [...]
                    kurze gegenfrage: warum testest du es nicht einfach.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      Original geschrieben von Abraxax
                      deswegen nennt man seine db auch im html einfach cb[]
                      versteh nicht was du meinst, was ist cb[] ?

                      Kommentar


                      • #12
                        wenn du die suche bemüht hättest (=> checkbox):
                        http://www.php-resource.de/forum/sea...der=descending

                        hättest du das hier gefunden
                        http://www.php-resource.de/forum/sho...light=checkbox
                        Kissolino.com

                        Kommentar


                        • #13
                          Original geschrieben von jOhnny knOx
                          versteh nicht was du meinst, was ist cb[] ?
                          verstehst du mich nicht, oder willst du mich nicht verstehen.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            Original geschrieben von Abraxax
                            verstehst du mich nicht, oder willst du mich nicht verstehen.
                            OffTopic:
                            Warum sollte ich fragen, wenn ich es nicht verstehe ?


                            Zuletzt geändert von jOhnny knOx; 11.06.2003, 20:58.

                            Kommentar


                            • #15
                              abraxax hat doch gesagt, dass du deine checkboxen umbenenn sollst oder?
                              von
                              PHP-Code:
                              echo "<input type='checkbox' class='checkbox' name='catid'> blah"
                              in
                              PHP-Code:
                              echo "<input type='checkbox' class='checkbox' name='catid[]'>blah"
                              oder hat er das nicht gesagt?

                              jetzt hast du in php ein array mit allen angeklickten checkboxen und wenn du jetzt bei jeder checkbox noch ein value tag reinschreibst und das mit der id der kategorie belegst, hast du sogar was zum abfragen in deinem skript

                              was willst du denn abfragen, wenn es kein value-attribut gibt bei den checkboxen?
                              Ich denke, also bin ich. - Einige sind trotzdem...

                              Kommentar

                              Lädt...
                              X