Benutzerverwaltung

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Kizu
Mitglied
Beiträge: 545
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Benutzerverwaltung

Beitrag 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
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Kizu
Mitglied
Beiträge: 545
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Beitrag 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
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

$user_id ist in deinem Fall die ID des aktuell angemeldeten Benutzers, also $userdata['user_id'].

Alternative: Gruppenzugehörigkeit prüfen
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Kizu
Mitglied
Beiträge: 545
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Beitrag von Kizu »

leider habe ich von php 0-Ahnung
wie muss ich denn was in den code dann einfügen?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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?
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Kizu
Mitglied
Beiträge: 545
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Kizu
Mitglied
Beiträge: 545
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Beitrag 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)
Kizu
Mitglied
Beiträge: 545
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Beitrag von Kizu »

warum funktioniert das nicht???
Antworten

Zurück zu „Coding & Technik“