PHP Süper Küreseller

php-super-kureseller
Yazı içeriği

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

PHP Süper Küreseller: $_REQUEST

PHP $_REQUEST, HTML formundan gelen verileri toplamak için kullanılan PHP süper küreselidir. 

<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
    Name: <input type="text" name="fname">
    <input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
    // input elementinden gelen veriyi değişkene ata
    $name = htmlspecialchars($_REQUEST[ 'fname' ]);
    if (empty($name)) {
        echo 'Ad yok';
    } else {
        echo $name;
    }
}
?>
</body>
</html>
PHP

Ü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. 

<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
    Name: <input type="text" name="fname">
    <input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
    // input elementinden gelen veriyi değişkene ata
    $name = htmlspecialchars($_POST[ 'fname' ]);
    if (empty($name)) {
        echo 'Ad yok';
    } else {
        echo $name;
    }
}
?>
</body>
</html>
PHP

Ü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.

<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
    Name: <input type="text" name="fname">
    <input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'GET') {
    // input elementinden gelen veriyi değişkene ata
    $name = htmlspecialchars($_GET[ 'fname' ]);
    if (empty($name)) {
        echo 'Ad yok';
    } else {
        echo $name;
    }
}
?>
</body>
</html>
PHP

Ü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.

<!DOCTYPE html>
<html>
<body>
<a href="<?php
echo $_SERVER[ 'PHP_SELF' ] ?>?name=Onur%20Özden&website=www.onurozden.com.tr">Buraya Tıkla</a>
<?php
echo "Ben " . $_GET[ 'name' ] . " şu sitede PHP öğreniyorum: " . $_GET[ 'website' ];
?>
</body>
</html>
PHP

Ü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 '</br>';
echo $_SERVER['SERVER_NAME'];
echo '</br>';
echo $_SERVER['HTTP_HOST'];
echo '</br>';
echo $_SERVER['HTTP_REFERER'];
echo '</br>';
echo $_SERVER['HTTP_USER_AGENT'];
echo '</br>';
echo $_SERVER['SCRIPT_NAME'];
PHP

Ü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.

Benzer yazılar

php-foreach
PHP Döngülerin Performanslı ve Etkili Kullanımı

PHP en iyi yaklaşımlar serimizin bu bölümünde PHP döngüler (loop) hakkında kaliteli kodlama ve en iyi yaklaşım örneklerini paylaştık. Artık PHP’de döngüleri daha performanslı ve etkili olarak kullanacaksınız!

Yazıyı oku
PHP Etiketleri
PHP Etiketlerinin Efektif Kullanımı

PHP en iyi yaklaşımlar serimizde bugünki konumuz: PHP etiketleri. PHP etiketlerini en iyi şekilde nasıl kullanabiliriz? PHP’de kısa etiketleri neden kullanmamalıyız? PHP etiketleri hakkında en iyi yaklaşımları öğrenin!

Yazıyı oku
PHP strpos() İşlevinin Doğru Kullanımı
PHP strpos() İşlevinin Doğru Kullanımı

PHP’de strpos işlevinde hiç anlatılmayan ipuçlarını ve sık karşılaşılan hataları hiç düşündünüz mü? Doğru ve en iyi PHP strpos() kullanımını öğrenmek için web sitemizdeki makaleden ve kod örneklerinden hemen ücretsiz…

Yazıyı oku
Yorumunu Paylaş
Sayfa Değerlendirmesi

Hızlı Detay Formu

Hızlı detay formumuzu doldurun ve aynı gün içerisinde taleplerinizi ve sitenizi inceleyip ulaşalım!

Hızlı Detay Formu

Hızlı detay formumuzu doldurun ve aynı gün içerisinde taleplerinizi ve sitenizi inceleyip ulaşalım!

Hızlı İletişim Formu

Hızlı iletişim formumuzu doldurun ve aynı gün sitenizi analiz edip size ulaşalım!

Yanıtla
1
Whatsapp Destek Hattı
Merhaba. 👋
Size nasıl yardımcı olabiliriz?