PHP super küreseller (super globals) tüm kapsam alanlarından (all scopes) erişilebilen yerleşik (built-in) değişkenlerdir.
PHP Süper Küreseller (PHP Super Globals)
Bu dersimizde PHP’deki tüm süper küreselleri (super globals) örnekleriyle beraber anlatacağız. Öğrenmek için okumaya devam edin.
PHP Süper Küreseller: $GLOBALS
$GLOBALS süper küreseli, PHP script’indeki herhangi bir alandan (işlevler veya yöntemler dahil) global değişkenlere erişmek için kullanılır. PHP, tüm global değişkenleri $GLOBALS[index] adlı bir dizide saklar. İndeks, değişkenin adını tutar. Aşağıdaki örnek, $GLOBALS süper global değişkeninin nasıl kullanılacağını gösterir:
$number1 = 50;
$number2 = 20;
function addition(): int {
return $GLOBALS['number3'] = $GLOBALS['number2'] + $GLOBALS['number1'];
}
echo addition();
// Çıktı: 70
PHP Süper Küreseller: $_REQUEST
PHP $_REQUEST, HTML formundan gelen verileri toplamak için kullanılan PHP süper küreselidir.
Üstteki örnekte post metotuyla veri döndüren bir form oluşturduk. Döndüreceği veriyi aynı sayfada döndürmesini $_SERVER[‘PHP_SELF’] ile sağladık. $_SERVER[‘REQUEST_METHOD’] süper küreseliyle gelen isteğin post isteği olduğunu doğruladık. Ardından $name değişkenine $_REQUEST süper küreseliyle fname adlı name değerine sahip inputtan gelen veriyi htmlspecialchars() fonksiyouyla güvenli bir şekilde atadık. PHP if koşuluyla $name değişkeninin boş olup olmadığını kontrol ettik. Eğer boş ise “Ad yok” çıktısını, değilse $name değişkeninin verisini yazdırdık.
PHP Süper Küreseller: $_POST
PHP $_POST, HTML formundan POST metotuyla gelen verileri toplamak için kullanılan PHP süper küreselidir.
Üstteki örnekte post metotuyla veri döndüren bir form oluşturduk. Döndüreceği veriyi aynı sayfada döndürmesini $_SERVER[‘PHP_SELF’] ile sağladık. $_SERVER[‘REQUEST_METHOD’] süper küreseliyle gelen isteğin post isteği olduğunu doğruladık. Ardından $name değişkenine $_POST süper küreseliyle fname adlı name değerine sahip inputtan gelen veriyi htmlspecialchars() fonksiyouyla güvenli bir şekilde atadık. PHP if koşuluyla $name değişkeninin boş olup olmadığını kontrol ettik. Eğer boş ise “Ad yok” çıktısını, değilse $name değişkeninin verisini yazdırdık.
PHP Süper Küreseller: $_GET
PHP $_GET, HTML formundan GET metotuyla gelen verileri toplamak için kullanılan PHP süper küreselidir. Ayrıca urlde get ile gönderilen verileri $_GET süper küreseliyle alabiliriz.
PHP $_GET Süper Küreseliyle Formdan Veri Almak
Aşağıdaki örnekte PHP $_GET süper küreseliyle HTML formundan veri aldık.
Üstteki örnekte post metotuyla veri döndüren bir form oluşturduk. Döndüreceği veriyi aynı sayfada döndürmesini $_SERVER[‘PHP_SELF’] ile sağladık. $_SERVER[‘REQUEST_METHOD’] süper küreseliyle gelen isteğin post isteği olduğunu doğruladık. Ardından $name değişkenine $_POST süper küreseliyle fname adlı name değerine sahip inputtan gelen veriyi htmlspecialchars() fonksiyouyla güvenli bir şekilde atadık. PHP if koşuluyla $name değişkeninin boş olup olmadığını kontrol ettik. Eğer boş ise “Ad yok” çıktısını, değilse $name değişkeninin verisini yazdırdık.
PHP $_GET Süper Küreseliyle URL'den Veri Almak
Aşağıdaki örnekte PHP $_GET süper küreseliyle URL’den veri aldık.
Üstteki örnekte dosya adınızı yazmanız yerine $_SERVER süper küreselini kullanarak dosya adını aldık. Şimdi ise bu örnekte ne yaptığımızı anlatalım. Bir HTML dökümanı oluşturduk ve get.php dosyasına name parametresini verdik. name parametresine “Onur Özden” değerini verdik ve ‘&’ işaretiyle parametreleri ayırdık. Daha sonrasında website parametresini oluşturduk ve “onurozden.com.tr” değerini verdik. A etiketine ise “Buraya Tıkla” yazısını yazdırdık. PHP kısmına gelirsek, echo ile “Benim adım ” yazdırıp birleştirme operatörüyle $_GET süper küreselini kullanarak name adlı parametrenin verisini aldık ve yazdırdık. Yine birleştirme oepratörü kullanarak ” ve websitem ” yazdırdık. Tkerar birleştirme operatörü kullandık ve $GET süper küreseliyle website parametresinin verisini aldık ve yazdırdık.
PHP Süper Küreseller: $_SERVER
$_SERVER süper küreseli, başlıklar (headers), yollar (paths) ve komut dosyası konumları (script locations) hakkında bilgi tutan bir PHP süper global değişkenidir. Aşağıdaki örnek, $_SERVER süper küreselenin nasıl kullanılacağını gösterdik.
echo $_SERVER['PHP_SELF'];
echo '';
echo $_SERVER['SERVER_NAME'];
echo '';
echo $_SERVER['HTTP_HOST'];
echo '';
echo $_SERVER['HTTP_REFERER'];
echo '';
echo $_SERVER['HTTP_USER_AGENT'];
echo '';
echo $_SERVER['SCRIPT_NAME'];
Üstteki örnekte $number1 ve $number2 adında değişkenler tanımlayıp number türünde değer verdik. Ardından addition adında int veri türünde değer döndüren bir fonksiyon tanımladık. $GLOBALS süper küreselinde değişkenlerinin adının indeks olarak tutulduğunu söylemiştik. number3 adlı indeks oluşturarak değişkeni oluşturmuştuk olduk. Bu değişkene $GLOBALS süper küreseliyle global alandan eriştiğimiz $number2 değişkeni ile $number1 değişkeninin toplamını atadık. Daha sonrasında bu değeri return ile döndürdük ve fonksiyonu sonlandırdık. Son adım olarak echo ile addition() fonksiyonumuzdaki değeri çıktıladık.
PHP $_SERVER Süper Küreselinin Tüm Kullanımları
$_SERVER[‘PHP_SELF’] | Yürütülen betiğin dosya adını döndürür. |
$_SERVER[‘GATEWAY_INTERFACE’] | Sunucunun kullandığı CGI (Common Gateway Interface) versiyonunu döndürür. |
$_SERVER[‘SERVER_ADDR’] | Ana sunucunun IP adresini döndürür. |
$_SERVER[‘SERVER_NAME’] | Ana sunucunun adını döndürür. |
$_SERVER[‘SERVER_SOFTWARE’] | Sunucu tanımlama metnini döndürür (Apache/2.2.24 gibi). |
$_SERVER[‘SERVER_PROTOCOL’] | Bilgi protokolünün adını ve sürümünü döndürür (HTTP/1.1 gibi). |
$_SERVER[‘REQUEST_METHOD’] | Sayfaya erişmek için kullanılan istek yöntemini döndürür (POST, GET gibi). |
$_SERVER[‘REQUEST_TIME’] | İsteğin başlangıcının zaman damgasını döndürür (örneğin 1377687496). |
$_SERVER[‘QUERY_STRING’] | Sayfaya bir sorgu dizesi (query string) aracılığıyla erişiliyorsa sorgu dizesini döndürür. |
$_SERVER[‘HTTP_ACCEPT’] | Geçerli istekten kabul başlığını (accept header) döndürür. |
$_SERVER[‘HTTP_ACCEPT_CHARSET’] | Geçerli istekten (utf-8,ISO-8859-1 gibi) Accept_Charset (kabul edilen karakter seti) başlığını döndürür. |
$_SERVER[‘HTTP_HOST’] | Geçerli istekten Host başlığını (host header) döndürür. |
$_SERVER[‘HTTP_REFERER’] | Geçerli sayfanın tam URL’sini döndürür (tüm kullanıcı aracıları desteklemediğinden güvenilir değildir). |
$_SERVER[‘HTTPS’] | Betiğin güvenli bir HTTP protokolü (HTTPS) aracılığıyla sorgulanıp sorgulanmadığını kontrol eder. |
$_SERVER[‘REMOTE_ADDR’] | Kullanıcının geçerli sayfayı görüntülediği IP adresini döndürür. |
$_SERVER[‘REMOTE_HOST’] | Kullanıcının geçerli sayfayı görüntülediği yerden Ana Bilgisayar adını (hostname) döndürür. |
$_SERVER[‘REMOTE_PORT’] | Web sunucusuyla iletişim kurmak için kullanıcının makinesinde kullanılan bağlantı noktasını döndürür. |
$_SERVER[‘SCRIPT_FILENAME’] | Şu anda yürütülmekte olan betiğin mutlak yol adını (absolute path) döndürür. |
$_SERVER[‘SERVER_ADMIN’] | Web sunucusu yapılandırma dosyasındaki SERVER_ADMIN yönergesine verilen değeri döndürür (betiğiniz sanal bir ana bilgisayarda çalışıyorsa, o sanal ana bilgisayar için tanımlanan değer olacaktır) (some@onurozden.com.tr gibi). |
$_SERVER[‘SERVER_PORT’] | Web sunucusu tarafından iletişim için kullanılan sunucu makinesindeki bağlantı noktasını (port) döndürür (80 gibi). |
$_SERVER[‘SERVER_SIGNATURE’] | Sunucu tarafından oluşturulan sayfaya eklenen sunucu sürümünü (server version) ve sanal ana bilgisayar adını (virtual hostname) döndürür. |
$_SERVER[‘PATH_TRANSLATED’] | Geçerli betiğe dosya sistemi tabanlı yolu (file system based path) döndürür. |
$_SERVER[‘SCRIPT_FILENAME’] | Geçerli betiğin yolunu döndürür. |
$_SERVER[‘SCRIPT_URI’] | Geçerli sayfanın URI’sini döndürür. |