PHP posiada możliwość ustawienia w pliku konfiguracyjnym
php.ini
dyrektywy register_globals. Jest ona odpowiedzialna za rejestrowanie
danych otrzymanych z formularzy, ciastek, sesji czy serwera jako zmienne
globalne. Oznacza to, że jeśli dyrektywa
register_globals została
ustawiona na on to wszystkie zmienne przekazane do skryptu dostępne są
w postaci $nazwa_zmiennej, bez potrzeby stosowania żadnych tablic.
Wydaje się to wygodniejsze i łatwiejsze, lecz powoduje pewne
niebezpieczeństwo. Mianowicie używając zmiennych globalnych nie można
stwierdzić, czy dana wartość pochodzi z sesji czy może została podana w URLu
metodą GET. Przy źle napisanych skryptach można tak obchodzić zabezpieczenia.
W związku z powyższym, używanie odpowiednich tablic jest mocno zalecane.
Ostatnio twórcy PHP dodali do tego jeszcze jeden powód. Począwszy od wersji
4.2.0, dyrektywa register_globals jest domyślnie wyłączona. Tak więc
pisząc skrypt dla nieznanego serwera trzeba się liczyć z ewentualnością braku
dostępu do zmiennych globalnych.