Глобальные переменные (англ. global variables) — это переменные, которые доступны в любой части скрипта.
Использование глобальных переменных выглядит достаточно привлекательным. В тоже время, легко упустить возникшую лазейку, что может привести к глобальным проблемам. Например, возьмём скрипт содержащий следующий код:
for ($i=1; $i<=5; $i++ ) $val.= $i;
echo $val;
Как вы понимаете, скрипт должен вернуть строку: 12345. Однако, в случае с глобальными переменными, появилась лазейка для наших глобальных проблем. В частности, мы не объявили переменную $val, позволив к её значению добавить другие значения. К чему это приведёт? Например, передадим скрипту переменную val со значением hi!:
http://sitename.ru/script.php?val=hi!
В результате мы получим строку: hi!12345. Конечно, я привёл не самый реальный пример, но суть вы поняли? Если да, то стоит позаботиться об отключить использование глобальных переменных, чтобы избежать глобальных проблем. Утверждение спорно, но именно об этом и пойдёт речь. И так. Как это сделать?
Для решения поставленной задачи нам понадобиться уделить внимание значению PHP-опции: register_globals, которая находится в файле php.ini. Просто присвойте ей значение: Off.
register_globals = Off
Конечно, не всегда есть возможность получить доступ к файлу php.ini. Если используется сервер Apache, то можно попробовать воспользоваться директивой php_flag в файле .htaccess.
php_flag register_globals off
В том случае если и это не возможно, можно попробовать функцию для работы с опциями PHP, а именно: ini_set().
init_set(register_globals, false);
К слову, если функции для работы с опциями PHP — работают, проверить значение register_globals, можно используя функцию ini_get().
echo 'register_globals:' . ini_get('register_globals');
Если же выше сказанное не приносит видимого результата, вам придётся быть внимательными и тщательно поработать над обеспечением безопасности.
P.S. Помните, отключение глобальных переменных не панацея от глобальных проблем!