Frage zu den Benutzergruppen

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
NickVerstehn

Frage zu den Benutzergruppen

Beitrag von NickVerstehn »

Hallo,

ich habe folgendes Problem: Ich habe für meine Homepage einen Adminbereich erstellt, indem sich alle User mit Hilfe ihrer Forendaten einloggen können. Das funktioniert auch ganz gut, nur möchte ich jetzt verschiedene Menüpunkte zur Verfügung stellen, die nur von bestimmten Benutzergruppen durchführbar sind. Also eine IF Abfrage, in der abgefragt wird, ob der gerade eingeloggte User in der richtigen Gruppe ist.

Ich habe leider keine Ahnung, welche Daten ich dafür brauche, da ich zwar die Einträge aus der Tabelle USER abfregen kann, aber die Gruppen ja in einer extra Tabelle gespeichert sind. Es wäre nett, wenn mir jemand helfen könnte!

MfG

Nick Verstehn
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Reden wir hier gerade von phpBB, von deiner Homepage oder von einer Mischung von beiden. So ganz klar wird mir das nämlich nicht...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Gast

Beitrag von Gast »

if ($userdata['user_id'] == 5)Hallo,

tut mir leid, ich hab mich etwas unklar ausgedrückt ;). ALso es ist eindeutig eine Mischung aus beiden, aber was ich benötige, ist nur ein Befehl:

Wie kann ich per PHP Befehl aus der phpBB Datenbank feststellen, ob sich der der eingeloggte User in einer bestimmten Gruppe befindet?

Den Usernamen oder die UserID kann ich ja so auslesen:

Code: Alles auswählen

$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 
echo $userdata['username'];
echo $userdata['user_id'];
So kann ich ja leicht feststellen, ob der einzelne User die beötigten Rechte hat, den Link zu klicken, indem ich abfrage:

Code: Alles auswählen

if ($userdata['user_id'] == XXX)
{
erlaubt
}
Ich möchte es mir aber einfacher machen, und nach der Gruppe fragen, denn bei mehrern Usern pro Gruppe ist es natürlich einfacher, nur eine Abfrage zu machen, als zu fragen:

Code: Alles auswählen

if ($userdata['user_id'] == XXX or $userdata['user_id'] == YYY or ...)
Also in etwa so:

Code: Alles auswählen

if ($userdata['gruppennumer_id'] == "benötigte Gruppennummer")
Aber da es halt diese "gruppennumer_id" nicht gibt, wollt ich wissen, wie ich es lösen kann.

Ich hoffe, ich habs diesmal geschafft, mich verständlicher auszudrücken ;)

MfG

Nick Verstehn
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Die Gruppenzuordnungen sind in der phpbb_user_group gespeichert. Da musst du mit 'ner entsprechenden SQL-Abfrage zugreifen und das Ergebnis auswerten.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Gast

Beitrag von Gast »

Hallo und danke,

ich habe es probiert, stehe aber leider immernoch vor einem etwas größerem Problem. Ich habe leider von MySQL fast gar keine Ahnung, und deswegen krieg ich wohl auch keine vernünftige Abfrage hin. Mein Code:

Code: Alles auswählen

$i=0;

$user_gruppenid = mysql("FORENDB" select * from phpbb_user_group where group_id=XX");

mysql_fetch_object($user_gruppenid);

$user_gruppenid = (mysql_result($user_gruppenid,$i,user_id));

if ($userdata['user_id'] == $user_gruppenid)
{
echo " $user_gruppenid ";
}

else
{
echo " nix ";
}
Jetzt kann ich leider nur feststellen, ob der User in der richtigen Gruppe ist, wenn er der erste User der Gruppe ist, da in der "phpbb_user_group " Tabelle leider nicht für jede Gruppe nur eine Zeile mit allen dazugehörigen Usern eingetragen ist, sondern für jeden USern jedesmal wieder eine neue Zeile, also:

Code: Alles auswählen

Group_id  User_ID
25 5
25 9
25 88
Mit meiner Abfrage krieg ich immer nur mit dem eingeloggten User 5 ein positives Abfrageergebnis, obwohl ja auch User 9 und 88 in der GRuppe sind. Diese würden dann aber nicht erkannt. Deswegen wäre ich sehr froh, wenn mir jemand einen besseren oder erweiterten Abfragebefehl geben könnte, der auch alle anderen User erkennt, und nicht nur den ersten!

Mir ist schon klar, das es mit dem $i zusammenhängt, ich habe es aber leider nicht geschafft, eine funktionierende Schleife zu erstellen, die alle User abfragt. Was muss ich tun?

MfG und danke schonmal für alle Mühen

Nick Verstehn
Gast

Beitrag von Gast »

Alles gelößt, vielen Dank für die Hilfe.
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“