Что за код такой?

DenVeroid

Новичок
Что за код такой?

вот немогу разобраться, часто вижу в комерчиских продуктах есть примерно такой код, вот один из них

// ----------------------------------------------
// REGISTER GLOBALS OFF
// ----------------------------------------------

if (isset($HTTP_COOKIE_VARS))
{
while(list($var,$val)=each($HTTP_COOKIE_VARS))
{
$$var=$val;
}
}
if (isset($HTTP_GET_VARS))
{
while(list($var,$val)=each($HTTP_GET_VARS))
{
$$var=$val;
}
}
if (isset($HTTP_POST_VARS))
{
while(list($var,$val)=each($HTTP_POST_VARS))

{
$$var=$val;
}
}
if (isset($HTTP_SERVER_VARS))
{
while(list($var,$val)=each($HTTP_SERVER_VARS))
{
$$var=$val;
}
}
// END


что он делает, какую роль он играет, я так понимаю что просто прогоняет глобальные переменные через цикл, но смысл?
 

clevel

Новичок
по ходу видно, что код разрабатывался с register_globals=on, потом для совместимости с register_globals=off все входящие данные из указанных тобой массивов перегоняются в отдельные переменные с одноименными названиями...
 

young

Новичок
можешь заменить его таким

PHP:
<?php
$stat = ini_get("register_globals");
if (empty($stat)) {
	extract($_GET, EXTR_OVERWRITE);
	extract($_POST, EXTR_OVERWRITE);
	extract($_SESSION, EXTR_OVERWRITE);
	extract($_COOKIE, EXTR_OVERWRITE);
}
?>
 

AnToXa

prodigy-одаренный ребенок
только имхо стоит поменять порядок cookie и session
 
Сверху