Gruppenzugehörigkeiten eines Benutzers prüfen

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
lachkopf
Mitglied
Beiträge: 23
Registriert: 27.05.2008 16:31

Gruppenzugehörigkeiten eines Benutzers prüfen

Beitrag von lachkopf »

Hallo, mein Problem ist folgendes:

In diesem Topic (http://www.phpbb.de/viewtopic.php?t=164060) wird erklärt, wie man prüfen kann, ob ein User in der besagten Gruppe ist oder nicht, wenn ja, dann wird was ausgeführt.
Soweit sogut.
Ich hab das jetzt umgesetzt und will prüfen, ob der User in der Gruppe Administratoren ist (ID = 5).

Der Code:
<?php

define('IN_PHPBB', true);
$phpbb_root_path = '';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
$gruppen_id = "5";
$benutzer_id = "$user->data['user_id']";
$is_in_group = "group_memberships($gruppen_id, $benutzer_id , true)";
if($is_in_group == true)
{
echo "TEXT";
}
?>
Leider wird aber immer "TEXT" ausgegeben, auch wenn ich ncihtmal in meinem Forum iengeloggt bin, oder ich der $gruppen_id z.b. Buchstaben zuweise. Woran liegt das?

MfG,
Lachkopf[/quote]
Benutzeravatar
bantu
Server-Team
Beiträge: 7311
Registriert: 25.04.2006 16:12
Wohnort: Karlsruhe

Beitrag von bantu »

Willst du prüfen ob jemand in der Administratoren-Gruppe ist, oder jemand Administratorenrechte hat?

Wo kommen in deinem Code denn die Anführungszeichen her?
Powered by Coffee
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Code: Alles auswählen

$is_in_group = "group_memberships($gruppen_id, $benutzer_id , true)";
if($is_in_group == true)
{
echo "TEXT";
} 
Kein Wunder du weist der Variable $is_in_group einen Wert zu und zwar group_memberships(x, y , true) und prüfst darauf hin ob die Variable $is_in_group da ist und true ergibt, alles ergibt true, seidenn die Variable ist 0, flase oder leer.

Funktionen dürfen nicht in Anführungszeichen stehen, sonst werden sie nicht erkannt.
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Benutzeravatar
Pionier
Mitglied
Beiträge: 232
Registriert: 29.12.2007 19:55
Wohnort: Niebüll (S-H)
Kontaktdaten:

Beitrag von Pionier »

Les dir das mal durch: http://www.phpbb.de/viewtopic.php?t=151304

Hat mir sehr geholfen.
lachkopf
Mitglied
Beiträge: 23
Registriert: 27.05.2008 16:31

Beitrag von lachkopf »

Thx für die Antworten.
Habs jetzt mal ohne die Anführungszeichen gemacht, kommt folgender Fehler:

Fatal error: Call to a member function sql_in_set() on a non-object in xxxxxxxxxxxxxxxincludes/functions_user.php on line 3200


Betrifft diese Zeile:
if ($group_id_ary)
{
$sql .= ' ' . $db->sql_in_set('ug.group_id', $group_id_ary); //Zeile 3200
}
Ich geh mal davon aus, dass diese Datei aber richtig geschrieben ist, und die Anführungszeichen hab ich ja von dem Vorgestellten von Dr. Death benutzt, daher müssten sie eigentlich richtig sein.
lachkopf
Mitglied
Beiträge: 23
Registriert: 27.05.2008 16:31

Beitrag von lachkopf »

Hab jetzt mal das true in anführungszeichen gesetzt, nun kommt nie TEXT.

Und jetzt nochmal so, wie es in dem originalcode steht.
Was mich eigetnlich wundert ist ja, dass der code von mir ja eigentlihc nur übernommen wurde o.0 http://www.phpbb.de/viewtopic.php?t=164060
kommt dann folgender fehler:
Parse error: syntax error, unexpected T_IF in /usr/export/www/hosting/lachkopf/phpBB3/warteliste_warteliste.php on line 11
<?php
define('IN_PHPBB', true);
$phpbb_root_path = '';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.'.$phpEx);
$gruppen_id = 5;
$benutzer_id = $user->data['user_id'];
$is_in_group = group_memberships($gruppen_id, $benutzer_id , true)
if($is_in_group == true) //Zeile 11
{
echo "TEXT";
}
?>
Benutzeravatar
Pionier
Mitglied
Beiträge: 232
Registriert: 29.12.2007 19:55
Wohnort: Niebüll (S-H)
Kontaktdaten:

Beitrag von Pionier »

Ich mache es mal übersichtlicher!!

Code: Alles auswählen

<?php
define('IN_PHPBB', true);
$phpbb_root_path = ''; 
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.'.$phpEx);


// Start session management
$user->session_begin();
$auth->acl($user->data);


// zu überprüfende Gruppen ID ( Beispiel Gruppen ID 5 )
$gruppen_id = 5;


// zu überprüfender User ( Beispiel: Der User, der diese Seite aufgerufen hat )
$benutzer_id = $user->data['user_id'];


// Nun erfolgt die eigentliche Prüfung:
$is_in_group = group_memberships($gruppen_id, $benutzer_id , true);



if($is_in_group == true) //Zeile 11
{ 
	echo "TEXT";
}
?> 

Ich dachte, du hättest den Beitrag den ich oben verlinkt hatte durch gearbeitet :(

Hier mal die Auflistung deiner Fehler:
  1. Die Funktion muss hinter den Session Start Teil. Weil deine Seite sonst nicht weiß wer sie geöffnet hat!
  2. Hinter $is_in_group = group_memberships($gruppen_id, $benutzer_id , true) gehört ein ;
  3. Hättest du den von mir genannten Beitrag gelesen, wärst du selbst auf die Lösung gekommen!!!
lachkopf
Mitglied
Beiträge: 23
Registriert: 27.05.2008 16:31

Beitrag von lachkopf »

Klappt jetz.
Aber dann is der Code in dem Beispiel falsch, da fehlt das ; nämlich jedesmal o.0
Benutzeravatar
Pionier
Mitglied
Beiträge: 232
Registriert: 29.12.2007 19:55
Wohnort: Niebüll (S-H)
Kontaktdaten:

Beitrag von Pionier »

lachkopf hat geschrieben:Klappt jetz.
Dann ist ja alles OK :grin:
Benutzeravatar
bantu
Server-Team
Beiträge: 7311
Registriert: 25.04.2006 16:12
Wohnort: Karlsruhe

Beitrag von bantu »

Aber dann is der Code in dem Beispiel falsch, da fehlt das ; nämlich jedesmal o.0
In der Tat. Sollte behoben sein. Danke. :-)
Powered by Coffee
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“