wie kann ich unterbinden, dass die superglobals normale Variablen überschreiben?
also z. B. dass
$_COOKIE[‘ID’] die Variable $ID überschreibt, bzw. erst erstellt.
mfg,
tracert
wie kann ich unterbinden, dass die superglobals normale Variablen überschreiben?
also z. B. dass
$_COOKIE[‘ID’] die Variable $ID überschreibt, bzw. erst erstellt.
mfg,
tracert
register_globals auf off stellen.
hat zwar mit
ini_set('register_globals', 0);
(stimmt doch so, oder?)
nicht funktioniert,
konnte das Problem dann aber mit einer funktion von php.net beheben:
[code]function unregister_globals()
{
if (!ini_get(‘register_globals’))
{
return false;
}
foreach (func_get_args() as $name)
{
foreach ($GLOBALS[$name] as $key=>$value)
{
if (isset($GLOBALS[$key]))
unset($GLOBALS[$key]);
}
}
}
unregister_globals(’_POST’, ‘_GET’, ‘_COOKIE’, ‘_REQUEST’, ‘_SERVER’, ‘_ENV’, ‘_FILES’);
[/code]
[quote=“tracert”]hat zwar mit
ini_set('register_globals', 0);
(stimmt doch so, oder?)
nicht funktioniert[/quote]
Nein, stimmt nicht, und funktioniert so natürlich nicht - weil es dazu bereits zu spät ist, nachdem das Script bereits gestartet wurde.
Das kannst du in der php.ini und teilweise auch in der .htaccess einstellen.
Bei bplaced funktioniert es z.B: über die .php.ini (Punkt am Anfang!)