Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Website in Forum einbinden
#31
Verändert habe ich nichts in der Datenbank.
Aktuell funktioniert das ganze jedoch nicht. Ich hab mal den Code mit dem ich getestet habe angehängt...

Es gibt folgende Fälle:

Ich trage oben mehr als eine Nutzergruppe ein, frage unten aber nur eine Gruppe ab ~> Zugriff verweigert

Ich trage oben nur eine Gruppe ein, und frage diese unten auch ab
a) wenn ich die Gruppe als Sekundäre/Primäre Gruppe habe, jedoch keine weiteren sekundären ~> erlaubt
b) wenn die Gruppe sek/primär ist, aber ich weitere sekundäre Gruppen habe ~> Zugriff verweigert.

Ich trage oben 2 Gruppen ein, und unten frage ich nacheinander die beiden Gruppe ab
~> Zugriff auf beide bereiche verweigert


Irgendwie ist das ganze ein wenig komisch. :|


Angehängte Dateien
.php   test.php (Größe: 1,64 KB / Downloads: 5)
#32
Du hast in hab jan's funktion bei den explodes in den klammern die falsche sache bearbeitet: vorne muss “,“ stehen und hinten die gruppen. Lass am besten die funktion komplett unberührt.
#33
Hat nun alles so funktioniert, wie es sollte, danke noch einmal.
#34
Hi,
wenn ich nun wie hier die Nutzergruppen abfrage:
PHP-Code:
if($mybb->user['uid'] && isUserInGroup("4,2")) { //überprüfen ob angemeldet & in Usergruppe 4 oder 2
 //Inhalt ausgeben 

Klappt alles wie gewollt. Wenn ich nun den Wert 4,2 aus meiner DB auslesen lasse, um die Rechte einzelner Seiten einfacher verwalten zu können, prüft er wieder nur die primäre Gruppe und lässt die Sekundären dabei weg. Wo ist das Problem? Der komplette Code zur Abfrage steht ja hier im Thread, oder soll ich den noch mal herkopieren?
#35
Wie wärs mal mit debuggen? Ich glaube nicht, dass es sonderlich schwer ist, selbst für einen Anfänger, sich Werte mit var_dump() und echo ausgeben zu lassen. Gib mal in der Funktion isUserInGroup aus, welche Gruppen in Betracht gezogen werden und welche überhaupt von MyBB zur Verfügung gestellt werden. Dann weisst du, wo der Fehler liegt.
#36
Ich bin mir nicht sicher ob wir vom gleichen Problem reden.
Also, ds funktionert alles wie es soll. Tage ist bspw. als NUtzergruppen 4,10 ein, können alle die Gruppe 4 und/oder 10 als Primäre oder sekundäre Gruppe haben die Seite betreten.

Wenn die den Wert 10 nun in der DB speicher und das dort ausgeben lasse, nimmt der den Wert nur noch, wenn man Gruppe 10 als primäre Gruppe hat. Die sekundären Gruppen beachtet er bei der PRüfung gar nicht mehr. Dieses Verhalten tritt jedoch nur auf, wenn der Wert aus der DB stammt. Wenn ich bspw. die Variable manuell definiere $varibale = "10"; dann funktioniert alles trotzdem so wie es soll.

Nun meine Frage noch einmal, wieso akzeptiert er keine Werte aus der DB?
#37
Werden alle benötigten Variablen aus der Datenbank richtig an die Funktion übergeben?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
#38
(30.12.2012, 18:39)Juventiner schrieb: Ich bin mir nicht sicher ob wir vom gleichen Problem reden.
Also, ds funktionert alles wie es soll. Tage ist bspw. als NUtzergruppen 4,10 ein, können alle die Gruppe 4 und/oder 10 als Primäre oder sekundäre Gruppe haben die Seite betreten.

Wenn die den Wert 10 nun in der DB speicher und das dort ausgeben lasse, nimmt der den Wert nur noch, wenn man Gruppe 10 als primäre Gruppe hat. Die sekundären Gruppen beachtet er bei der PRüfung gar nicht mehr. Dieses Verhalten tritt jedoch nur auf, wenn der Wert aus der DB stammt. Wenn ich bspw. die Variable manuell definiere $varibale = "10"; dann funktioniert alles trotzdem so wie es soll.

Nun meine Frage noch einmal, wieso akzeptiert er keine Werte aus der DB?
Wie gesagt, gib die übergebenen Variablen aus, dann weisst du mehr.
#39
PHP-Code:
if($mybb->user['uid'] && isUserInGroup("" $perm "")) { 

So habe ich die Variable eingebunden.
Wenn ich sie ausgeben lasse zeigt sie mir die Nutzergruppe an, die in der DB gespeichert wurde, in diesem Fall also 10.
#40
Du solltest prüfen, welche Variable in der Funktion tatsächlich ankommen (das heisst, die übergebene als auch die von MyBB), denn dort werden sie ja gebraucht und verarbeitet.

edit: "" . $perm . "" ist das gleiche wie einfach $perm.