Seite 1 von 1

Gruppenverwaltung zum Schutz von Websites => Problem

Verfasst: 10.10.2004 14:27
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

Verfasst: 14.10.2004 19:48
von d23
weiß keiner was ?

Verfasst: 14.10.2004 20:33
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.

Verfasst: 15.10.2004 09:02
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:

Verfasst: 16.10.2004 01:20
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 ;)