phpbar.de logo

Mailinglisten-Archive

[php] Register Globals

[php] Register Globals

Roland Tapken php_(at)_phpcenter.de
Sat, 20 Apr 2002 15:17:39 +0200


Hi!

Am Sat, 20 Apr 2002 01:58:48 +0200 schrieb "Jens Kohl"
<j.kohl_(at)_style-id.de>:

> Morgen,
> 
> ich stelle grade hier auf meiner Entwicklungskiste meine Skripte alle
> auf Register Globals = off um, und benutze dabei PHP 4.2.0 RC4. Dort ist
> es ja nun möglich, z.B. mit $_REQUEST["varName"] die Variablen
> anzusprechen. Soweit sogut. Laufen so geänderte Skripte dann aber
> eigentlich noch auf PHP 4.0.6 Installationen mit Register Globals = on?
> 
> In dem Zusammenhang wäre auch $_COOKIES, $_SERVER und $_SESSION von
> großer Bedeutung.

Ich behelfe mir da, indem ich an den Anfang des Scriptes folgende Zeilen
stelle (wird bei mir über eine prepend-Datei gemacht, daher kaum Aufwand):

if (!is_array($_SERVER)) {
    $_POST    = & $HTTP_POST_VARS;
    $_GET     = & $HTTP_GET_VARS;
    $_COOKIES = & $HTTP_COOKIES_VARS;
    /* ... */
    $_REQUEST = array_merge($_GET, $_POST, $_COOKIES);
}

Du musst aber darauf achten, dass es trotzdem noch einige Unterschiede
gibt. Das wichtigste ist, dass diese neuen Variabeln nicht Auto-Global
sind. Greifst du innerhalb von Funktionen darauf zu, so musst du sie
zuerst globalisieren. 



cu, Roland Tapken
-- 
Please reply to:  tapken_(at)_engter.de
PGP Public Key: http://www.engter.de/~tapkenea/gnupg_roland.txt
  ~~~ I'm a signature-virus. Please copy me into your sig. ~~~


php::bar PHP Wiki   -   Listenarchive