имхо включение суперглобалок - оплеуха в адрес репутации хостера...
на пхп.нет ясно сказано: были пьяны, не знали что творили. за то что посадили на стакан малолетних - не виноватые. пейте апельсиновый сок вместе с нами - и цероз печени от выпитой водки не схватит.
так вот: проблема вот в чём: оставленные стаканы с водкой подходят для пития, если туда налить, согласно рекомендациям парней из пхп.нет, апельсиновый сок.
моё мнение: переменная не имеет просто права на включение ни на стороне пользователя, ни в локальной сети. в интернете register_globals=on приравнивается к самоубийству. у "хакеров" текут слюни от таких настроек. поэтому скрипт изначально максимально точно должен оговаривать: от кого для чего и откуда появилась такая-то переменная.
я почитал(в том числе и книги) и не доконца понял
т.е при выключеном RG опознаваться будет только те переменные, которые объявлены в классах? _________________ сервис DNS | разные http, DNS и прочие утилиты
При включенном register_globals переменные, пришедшие от пользователя (POST, GET, COOKIES), станут глобальными (к ним будет доступ непосредственно по имени - как $id). При выключенном rg, доступ к переменным запроса можно будет получить только через соответствующий суперглобальный массив ($_POST, $_GET, $_REQUEST...).
Включать rg - значит допускать большую вероятность по невнимательности забыть инициализировать важную переменную, которая может быть инициализирована через rg. К переменным запроса, по моему мнению, лучше обращаться, явно указывая, откуда они: $_REQUEST['id']. Не нравится так - можно придумать кучу оберток: getRequestParameter('id'), например. Но важно явно указывать, что переменная взята из запроса - легче будет жить.