PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Userrechte - wie realisieren ? (https://www.php-resource.de/forum/php-developer-forum/21167-userrechte-wie-realisieren.html)

jOhnny knOx 11-06-2003 16:24

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.

Skaschy 11-06-2003 16:31

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

mrhappiness 11-06-2003 16:31

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

Skaschy 11-06-2003 16:33

hmm oder so =)

@mrhappiness
sollte auch nur n bsp. sein =)

jOhnny knOx 11-06-2003 16:34

Zitat:

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.

jOhnny knOx 11-06-2003 16:48

Zitat:

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. :)

jOhnny knOx 11-06-2003 18:49

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 ?

Abraxax 11-06-2003 19:00

Zitat:

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.

jOhnny knOx 11-06-2003 19:13

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

Abraxax 11-06-2003 19:45

Zitat:

Original geschrieben von jOhnny knOx
Kurze Frage: [...]
kurze gegenfrage: warum testest du es nicht einfach.

jOhnny knOx 11-06-2003 20:16

Zitat:

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

Wurzel 11-06-2003 20:23

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

Abraxax 11-06-2003 20:24

Zitat:

Original geschrieben von jOhnny knOx
versteh nicht was du meinst, was ist cb[] ?
verstehst du mich nicht, oder willst du mich nicht verstehen. :mad:

jOhnny knOx 11-06-2003 21:55

Zitat:

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



mrhappiness 11-06-2003 21:59

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?


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:53 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG