PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |
|

11-06-2003, 16:24
|
jOhnny knOx
Senior Member
|
|
Registriert seit: Mar 2003
Beiträge: 561
|
|
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.
|

11-06-2003, 16:31
|
Skaschy
Registrierter Benutzer
|
|
Registriert seit: Jun 2002
Ort: Bad Wörishofen (Allgäu)
Beiträge: 584
|
|
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
|

11-06-2003, 16:31
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
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...
|

11-06-2003, 16:33
|
Skaschy
Registrierter Benutzer
|
|
Registriert seit: Jun 2002
Ort: Bad Wörishofen (Allgäu)
Beiträge: 584
|
|
hmm oder so =)
@mrhappiness
sollte auch nur n bsp. sein =)
|

11-06-2003, 16:34
|
jOhnny knOx
Senior Member
|
|
Registriert seit: Mar 2003
Beiträge: 561
|
|
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.
|

11-06-2003, 16:48
|
jOhnny knOx
Senior Member
|
|
Registriert seit: Mar 2003
Beiträge: 561
|
|
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.
|

11-06-2003, 18:49
|
jOhnny knOx
Senior Member
|
|
Registriert seit: Mar 2003
Beiträge: 561
|
|
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 ?
|

11-06-2003, 19:00
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
|
|
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.
|

11-06-2003, 19:13
|
jOhnny knOx
Senior Member
|
|
Registriert seit: Mar 2003
Beiträge: 561
|
|
Kurze Frage: Mit dem Array werden doch dann mehrere Datensätze, also pro gewählte Kategorie in der Checkbox, ein Datensatz, hinzugefügt ?
|

11-06-2003, 19:45
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
|
|
Zitat:
Original geschrieben von jOhnny knOx
Kurze Frage: [...]
|
kurze gegenfrage: warum testest du es nicht einfach.
|

11-06-2003, 20:16
|
jOhnny knOx
Senior Member
|
|
Registriert seit: Mar 2003
Beiträge: 561
|
|
Zitat:
Original geschrieben von Abraxax
deswegen nennt man seine db auch im html einfach cb[]
|
versteh nicht was du meinst, was ist cb[] ?
|

11-06-2003, 20:23
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
|

11-06-2003, 20:24
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
|
|
Zitat:
Original geschrieben von jOhnny knOx
versteh nicht was du meinst, was ist cb[] ?
|
verstehst du mich nicht, oder willst du mich nicht verstehen.
|

11-06-2003, 21:55
|
jOhnny knOx
Senior Member
|
|
Registriert seit: Mar 2003
Beiträge: 561
|
|
Zitat:
Original geschrieben von Abraxax
verstehst du mich nicht, oder willst du mich nicht verstehen.
|
OffTopic: Warum sollte ich fragen, wenn ich es nicht verstehe ?
Geändert von jOhnny knOx (11-06-2003 um 21:58 Uhr)
|

11-06-2003, 21:59
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
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...
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|