Seite 1 von 1

Globale Variablen

Verfasst: 25.10.2004 15:21
von markusbauer
Hallo!

Ich habe das phpbb Forum mit meiner Seite verknüpft. Meine Seite verwendet jetzt das Templatesystem und das Datenbank und das Rechtesystem von phpbb mit. Dazu müssen natürlich auch auf den Intranetseiten die common.php unsw eingebunden werden.

Allerdings verwende ich in meiner Intranetseite häufig globale Variablen, wie $PHP_SELF und alles, was in $_SERVER enthalten ist.

Doch phpbb muss diese mit Gewalt löschen (vor dem Einbinden der PHPbb header sind alle Variablen noch wie gewohnt vorhanden).


WIESO macht phpbb das, welchen Zweck soll das haben??

Das ist mehr als lästig!! Als kleines "Workaround" habe ich die wichtigsten Variablen gesichert und stelle sie nachher wieder her.
Aber das kann es doch nicht sein! Wie kann ich das abstellen?

Vielen Dank

Markus

Verfasst: 25.10.2004 16:27
von MrMind
Naja ich denke mal net, das das phpBB die Variablen löscht.

Es werden die globalen Variablen aus Kompabilitätsgründen in $HTTP_X_VARS gesichert (X steht für den Typ, wie GET, POST, COOKIE etc.). Aber von löschen hab ich noch nichts mitbekommen.

Mfg
MrMind

Verfasst: 25.10.2004 22:41
von markusbauer
Das kann ich sogar beweisen:

common.php, ~Zeile 47

Code: Alles auswählen

$test = array('_GET', '_POST', '_SERVER', '_COOKIE', '_ENV');

foreach ($test as $var)
        {
                if (is_array(${$var_prefix . $var . $var_suffix}))
                {
                        unset_vars(${$var_prefix . $var . $var_suffix});
                        @reset(${$var_prefix . $var . $var_suffix});
                }

                if (is_array(${$var}))
                {
                        unset_vars(${$var});
                        @reset(${$var});
                }
        }
Und die passende Funktion gibts in common.php ~Zeile 31:

Code: Alles auswählen

function unset_vars(&$var)
{
        while (list($var_name, $null) = @each($var))
        {
                unset($GLOBALS[$var_name]);
        }
        return;
}
edit Christian_W: bitte für Code den [ code]-Tag benutzen


Ich find des mehr als krank dass einfach die globalen Variablen gelöscht werden!!! Aber trotzdem mag ich das nicht einfach auskommentieren denn vielleicht hats ja doch einen Nutzen und deswegen mein Post.

Verfasst: 26.10.2004 12:13
von Christian_W