PHP Superglobal Variables dan Register_Globals
PHP mempunyai jenis pemboleh ubah khas yang dipanggil superglobal. Alasan pembolehubah ini adalah istimewa kerana ia secara automatik tersedia untuk sebarang program PHP tanpa programmer yang mencipta atau menentukannya dalam programnya. Anda boleh memikirkannya sebagai pembolehubah terbina dalam.

Cara anda akan mengakses pembolehubah ini berbeza bergantung kepada sama ada register_globals dihidupkan atau dimatikan pada pelayan anda. Sebelum versi PHP 4.2, register_globals dihidupkan secara lalai. Walau bagaimanapun, untuk tujuan keselamatan; tetapan ini kini dimatikan secara lalai (versi 4.2+). Sudah tentu terpulang kepada orang-orang yang menjalankan pelayan anda untuk memutuskan sama ada untuk menindih tetapan lalai dan menghidupkan register_globals. Cara paling mudah untuk menguji pelayan anda sendiri adalah menggunakan phpinfo (). Anda mungkin akan mempunyai pautan ke laman web ini di kawasan pentadbiran laman web anda. Di laman web ini, anda akan menemui bahagian Konfigurasi PHP Core yang mempunyai maklumat ini.

Seperti yang disebutkan di atas, anda akan mengakses superglobals yang berbeza bergantung pada tetapan pelayan anda. Untuk persediaan pelayan baru superglobals diberi nama baru. Sekiranya pelayan anda masih mempunyai tetapan lama, lebih baik anda mula menggunakan nama-nama baru. Jika anda menggunakan nama-nama baru ini, anda pasti bahawa program anda akan berfungsi di bawah kedua-dua konfigurasi pelayan. Walau bagaimanapun, ini tidak berlaku untuk nama-nama lama. Mereka hanya akan berfungsi untuk konfigurasi pelayan lama. Carta di bawah menunjukkan nama lama dan baru dan penerangan tentang superglobals. Perhatikan bahawa nama-nama superglobals ini dalam semua huruf besar.

BaruTuaPenerangan
$ _GET $ HTTP_GET_VARS Superglobal ini mengandungi pembolehubah yang dihantar ke program dengan cara mendapatkan seperti rentetan gergasi.
$ _POST $ HTTP_POST_VARS Superglobal ini mengandungi pembolehubah yang dihantar ke program dengan kaedah pos.
$ _COOKIE $ HTTP_COOKIE_VARS Superglobal ini mengandungi pembolehubah yang ada pada program dari cookie.
$ _SESSION $ HTTP_SESSION_VARS Superglobal ini mengandungi pembolehubah yang didaftarkan oleh program melalui sesi.
$ _FILES $ HTTP_POST_FILES Superglobal ini mengandungi pembolehubah yang boleh didapati daripada muat naik fail.
$ _ENV $ _HTTP_ENV_VARS Superglobal ini mengandungi pembolehubah yang boleh didapati dari persekitaran pelayan.
$ _REQUEST -- Superglobal ini mengandungi pembolehubah yang dihantar ke program oleh sebarang jenis input pengguna. Ini adalah jenis superglobal yang paling umum atau sejagat.
$ _SERVER -- Superglobal ini mengandungi maklumat mengenai pelayan seperti laluan fail.