Seite 1 von 3

Benutzerverwaltung

Verfasst: 05.01.2008 14:35
von Kizu
Ich möchte gerne eine PHP-Datei haben, die prüft ob ein User in einer Benutzergruppe ist oder nicht. Wenn der in der Benutzer angemeldet ist und sich in der Gruppe befindet soll ein html code angezeigt werden. ohne header und footer. wenn er nicht eingeloggt ist soll der user ein login Formular vorfinden. wenn er nicht in der Gruppe ist eine Fehlermeldung

benutze phpbb 2.0.22

Verfasst: 05.01.2008 15:41
von gn#36
Die KB:phpbb_seite als Grundlage verwenden, dann

Code: Alles auswählen

$sql = 'SELECT * FROM ' . USER_GROUPS_TABLE . " WHERE user_id = $user_id AND group_id = $group_id AND user_pending = 0";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Konnte Daten nicht lesen', '', __LINE__, __FILE__, $sql);
}
if($db->sql_numrows($result))
{
//Ist drin
}
else
{
//Ist nicht drin
}
$user_id und $group_id musst du natürlich vorher füllen.

Verfasst: 05.01.2008 16:56
von Kizu
so?

Code: Alles auswählen

$sql = 'SELECT * FROM ' . USER_GROUPS_TABLE . " WHERE user_id = $user_id AND group_id = [color=red]123[/color] $group_id AND user_pending = 0";
das rote 123 für die gruppen-ID? aber was für eine user ID soll da wo rein? es soll doch nur geprüft werden ob der user in einer gruppe ist

Verfasst: 05.01.2008 18:33
von S2B
$user_id ist in deinem Fall die ID des aktuell angemeldeten Benutzers, also $userdata['user_id'].

Alternative: Gruppenzugehörigkeit prüfen

Verfasst: 05.01.2008 20:39
von Kizu
leider habe ich von php 0-Ahnung
wie muss ich denn was in den code dann einfügen?

Verfasst: 05.01.2008 22:48
von gn#36
Kizu hat geschrieben:leider habe ich von php 0-Ahnung
wie muss ich denn was in den code dann einfügen?
Das ist natürlich schlecht.
http://de.selfhtml.org wäre ein Anfang

oder auch http://de.php.net

Was du mit dem Skript machen willst musst du doch selbst wissen, wie sollen wir den wissen was du vor hast?

Verfasst: 05.01.2008 23:00
von Kizu
danke. html kann ich.
Ich möchte nur wissen wie ich das mit dem user_in_group(3) machen muss damit ich die html-codes einfügen kann. Oder wo ich bei

Code: Alles auswählen

$sql = 'SELECT * FROM ' . USER_GROUPS_TABLE . " WHERE user_id = $user_id AND group_id = $group_id AND user_pending = 0"; 
if(!$result = $db->sql_query($sql)) 
{ 
message_die(GENERAL_ERROR, 'Konnte Daten nicht lesen', '', __LINE__, __FILE__, $sql); 
} 
if($db->sql_numrows($result)) 
{ 
//Ist drin 
} 
else 
{ 
//Ist nicht drin 
}
die Gruppen-ID reinsetzten muss.

Verfasst: 06.01.2008 00:58
von gn#36
gn#36 hat geschrieben:Die KB:phpbb_seite als Grundlage verwenden, dann
Da findet sich auch eine Anleitung wie man den Standard Login Aufruft, wenn der user nicht eingeloggt ist.

Die von s2b verlinkte Funktion ist in der Verwendung vermutlich einfacher. Du musst nur den Code direkt am Anfang der Vorlage einbinden und danach dann lediglich einen einfachen IF switch:

Code: Alles auswählen

if($userdata['session_logged_in'] && user_in_group(3))
{ 
?> HTML WENN DER USER IHN SEHEN DARF <?php 
}
else if($userdata['session_logged_in'])
{
?> HTML WENN DER USER NICHT IN DER GRUPPE IST <?php
}
else
{
//Wie du ein Login-Form einbaust siehe Link, hier muss der Code jedenfalls hin
}
Die 3 steht übrigens für eine mögliche Gruppen ID wie du auch ganz leicht aus s2b's verlinkter Seite entnehmen kannst.

Verfasst: 06.01.2008 12:06
von Kizu
Danke. Ich habe aber folgendes Problem:
Nach dem ich das hier in die funcions.php eingefügt habe:
Alternative: Gruppenzugehörigkeit prüfen
kommt auf meinem Forum nichts mehr. Also eine Weiße leere Seite, wenn ich mein Forum aufrufe.

Hier die geänderte und die funktionierende Datei (habe einige Mods drinne):
http://seriuskoesehome.se.funpic.de/functions.txt (geänderte)
http://seriuskoesehome.se.funpic.de/fun ... ctions.txt (funktionierende)

Verfasst: 08.01.2008 15:56
von Kizu
warum funktioniert das nicht???