Gruppenverwaltung zum Schutz von Websites => Problem

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
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.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
d23
Mitglied
Beiträge: 132
Registriert: 28.01.2003 13:53

Gruppenverwaltung zum Schutz von Websites => Problem

Beitrag von d23 »

Hallo,

ich habe zur Zeit mit dem MOD "Gruppenverwaltung zum Schutz von Websites" massive Probleme. Auf meiner WebSite gibt es vom Forum unabhängige Profilseiten, auf denen man Infos über Leute abrufen kann. Ist man Mitglied der Gruppe mit der ID 8, erhält man zusätzliche Infos.

Seit einigen Tagen ist es Mitgliedern der Gruppe 8 nicht mehr möglich, diese erweiterten Informationen zu betrachten.

Code: Alles auswählen

<?php
include('header.php');
include('nav.php');
include('acc_sql.php');

$sp_uid = $_GET['sp_uid'];
$sp_uid01 = $sp_uid - 1;
$sp_uid02 = $sp_uid + 1;

// User die zugriff haben: es sind gruppen_ids, gruppennamen und user_ids  erlaubt wobei bei den gruppen namen und ids ein g am anfang angehängt werden muss.
$allowed_u = array();
$allowed_u[] = 'g8'; //gruppe

$access_allowed = false;
if( in_array($userdata['user_id'],$allowed_u))
{
        $access_allowed = true;
}

else
{
        $sql = "SELECT g.group_id, g.group_name
                FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
                WHERE ug.user_id = '" . $userdata['user_id'] . "'
                        AND g.group_id = ug.group_id";
        if ( !($result = $db->sql_query($sql)) )
        {
                message_die(GENERAL_ERROR, 'FEHLER: Konnte Gruppentabelle nicht laden', '', __LINE__, __FILE__, $sql);
        }
        $access_allowed = false;
        while( list($group_id, $group_name) = $db->sql_fetchrow($result) )
        {
                if( in_array('g' . $group_id[group_id],$allowed_u ))
                {
                         $access_allowed = true;
                         break;
                }
                if( in_array('g' . $group_name[group_name],$allowed_u))
                {
                         $access_allowed = true;
                         break;
                }



        }
        if( !$access_allowed )
        {

/* code rausgeschnipselt */

include('shoutbox.php');
include('footer.php');
die();

        }
}

// eingeloggte user

/* code rausgeschnipselt */

include('shoutbox.php');
include('footer.php');
?>
Das Problem liegt erst seit einigen Tagen vor, das komische daran ist, dass die 100%ig identische Kopie des Scriptes auf meiner Testumgebung einwandfrei funktioniert. Auf dem WebServer hat das Script bis vor einigen Tagen auch funktioniert. Stell ich auf dem WebServer auf UserID statt GruppenID um, funktioniert das Script.

Techn. Daten:

Testumgebung:

Windows 2000, Apache 2.0.52, PHP 4.3.9 (kein SafeMode), MySQL 4.0.21b

WebServer:

Debian Linux, Apache 1.3.31, PHP 4.3.9 (kein SafeMode), MySQL 4.0.21

MfG
d23
Mitglied
Beiträge: 132
Registriert: 28.01.2003 13:53

Beitrag von d23 »

weiß keiner was ?
Benutzeravatar
Saber_Rider
Mitglied
Beiträge: 101
Registriert: 21.12.2003 18:27

Beitrag von Saber_Rider »

also bei mir hat das original noch nie funktioniert. da du aber ne gruppen id und nicht den namen verwendest (was ich auch mache) könntest du einfach mal meinen leicht modifizierten code verwenden.

Code: Alles auswählen

$allowed_u = array(); 
$allowed_u[] = 'g8'; //gruppe 
$access_allowed = false; 

$sql = "SELECT group_id
     FROM " . USER_GROUP_TABLE .
     " WHERE user_id = '" . $userdata['user_id'] . "'";
if ( !($result_group = $db->sql_query($sql)) )
{
     message_die(GENERAL_ERROR, 'Could not get user group.', '', __LINE__, __FILE__, $sql);
}
$access_allowed = false;
while( $group_id = $db->sql_fetchrow($result_group) )
{
  if( in_array('g' . $group_id[group_id],$allowed_u ))
  {
     $access_allowed = true;
     break;
  }
}
if( !$access_allowed ) 
{ 

/* code rausgeschnipselt */ 

include('shoutbox.php'); 
include('footer.php'); 
die(); 

} 
so das ist eigentlich das original, nur wenn du die userid nicht verwendest kannst du dir den ersten teil der äußeren if abfrage sparen. außerdem ist das ganze zeug mit den gruppennamen raus.
funktioniert bei mir einwandfrei, wobei das original bei mir eben noch nie ging.
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Beitrag von Helmut »

Hallo d23,

also bei mir gabs am Anfang auch immer Probleme mit dem Code. Mir hat diese Lösung hier weitergeholfen. Danach hatte ich keine Probleme mehr.

Gruß Helmut :wink:
Ich bin nicht ganz dicht.... na und.
d23
Mitglied
Beiträge: 132
Registriert: 28.01.2003 13:53

Beitrag von d23 »

hallo,

vielen dank an euch beide, die lösung von saber_rider hat leider nicht so richtig funktioniert, aber dafür die von helmut ^^

nochmal danke ;)
Antworten

Zurück zu „phpBB 2.0: Mod Support“