PHP Dilinde Öntanımlı Değişkenler Kullanımı
PHP geliştiricileri için öntanımlı değişkenler, web uygulamalarının kalbinde yer alan temel bir yapıdır. Bu değişkenler, PHP tarafından otomatik olarak oluşturulur ve bir betiğin herhangi bir yerinden erişilebilir durumdadırlar. HTTP isteklerinden oturum verilerine, sunucu bilgilerinden dosya yüklemelerine kadar uygulamanın farklı katmanlarından bilgiye erişimi kolaylaştırarak dinamik ve etkileşimli web sayfaları oluşturulmasına olanak tanırlar.
Öntanımlı Değişkenlere Genel Bakış
PHP, betik yürütülmeden önce veya yürütme sırasında otomatik olarak doldurulan bir dizi özel değişkene sahiptir. Bu değişkenler, "süper global" olarak da adlandırılır, çünkü kapsamları ne olursa olsun (fonksiyonlar, sınıflar veya global kapsam) PHP betiğinin her yerinden erişilebilirler. En yaygın kullanılan öntanımlı değişkenler şunlardır:
$_GET: HTTP GET metodu ile gönderilen verileri içerir.$_POST: HTTP POST metodu ile gönderilen verileri içerir.$_REQUEST: Hem$_GEThem de$_POSTve$_COOKIEverilerini içerir.$_SESSION: Oturum değişkenlerini içerir. Oturum başlatıldıktan sonra kullanılabilir.$_COOKIE: HTTP çerezlerini içerir.$_SERVER: Sunucu ve yürütme ortamı hakkında bilgi içerir.$_FILES: HTTP POST metodu ile yüklenen dosyalar hakkında bilgi içerir.$_ENV: Ortam değişkenlerini içerir.
Temel Sözdizimi
Öntanımlı değişkenler, bir dizi gibi davranır ve içerdikleri verilere anahtar-değer çiftleri aracılığıyla erişilir. Genel sözdizimi aşağıdaki gibidir:
$_DEĞİŞKEN_ADI['anahtar'];Burada;
$_DEĞİŞKEN_ADI: Erişmek istediğiniz öntanımlı değişkenin adını (örn.$_GET,$_POST) temsil eder.'anahtar': Erişilmek istenen verinin benzersiz tanımlayıcısını temsil eder. Bu, bir HTML formundaki bir alanınnameözelliği, bir URL sorgu parametresinin adı, bir çerezin adı veya bir sunucu bilgisinin spesifik bir etiketi olabilir.
Detaylı Açıklama
Her bir süper global değişkenin işlevselliği ve tipik kullanım alanları aşağıda açıklanmıştır:
$_GET:
Tarayıcının adres çubuğunda (URL'de)
?işaretinden sonra gelen sorgu dizgisindeki parametrelere erişmek için kullanılır. Örneğin,example.com/sayfa.php?id=123&ad=testURL'sindeidveadparametrelerine$_GET['id']ve$_GET['ad']ile erişilebilir.
$_POST:
HTML formları aracılığıyla HTTP POST metodu kullanılarak gönderilen verilere erişmek için kullanılır. Bu veriler URL'de görünmez ve genellikle hassas bilgiler (şifreler) veya büyük veri setleri için tercih edilir.
$_REQUEST:
PHP'nin yapılandırmasına (
variables_order) bağlı olarak$_GET,$_POSTve$_COOKIEdeğişkenlerinin içeriğini birleştirir. Ancak, değişken önceliği nedeniyle beklenmedik davranışlara yol açabileceği için genellikle doğrudan$_GETveya$_POSTkullanılması önerilir.
$_SESSION:
Kullanıcı oturumları arasında veri saklamak için kullanılır. Bir kullanıcının web sitesindeki etkileşimlerini takip etmek (giriş durumu, sepet içeriği vb.) için idealdir. Kullanmadan önce
session_start()fonksiyonu çağrılmalıdır.
$_COOKIE:
Kullanıcının tarayıcısında depolanan HTTP çerezlerine erişmek için kullanılır. Çerezler, kullanıcı tercihlerini veya kimlik bilgilerini saklamak gibi amaçlarla kullanılabilir.
$_SERVER:
Web sunucusu ve geçerli yürütme ortamı hakkında kapsamlı bilgi sağlar. Örneğin,
$_SERVER['REQUEST_METHOD']ile HTTP isteğinin metodunu (GET, POST),$_SERVER['REMOTE_ADDR']ile kullanıcının IP adresini alabilirsiniz.
$_FILES:
HTML formları aracılığıyla yüklenen dosyalar hakkında bilgi (dosya adı, türü, boyutu, geçici konumu) içerir. Dosya yükleme işlemleri için özel olarak tasarlanmıştır.
$_ENV:
Çevre değişkenlerini içerir. Bu değişkenler, web sunucusunun (Apache, Nginx vb.) veya işletim sisteminin PHP betiğine sağladığı sistem düzeyindeki ayarlardır.
Pratik Kullanım Örnekleri
Aşağıdaki örnekler, öntanımlı değişkenlerin PHP betiklerinde nasıl kullanıldığını göstermektedir.
Örnek 1: $_GET Kullanımı
Bu örnekte, bir URL'den ad parametresini alıp ekrana yazdıracağız. Öncelikle, kullanıcıdan adını isteyen bir HTML formu oluşturalım:
    
    GET Örneği 
    Adınızı Girin (GET)
    
Şimdi de islem.php dosyasında bu veriyi işleyelim:
Merhaba, " . $ad . "!";
} else {
    echo "Lütfen adınızı girin.
";
}
?>Örnek 2: $_POST Kullanımı
Bu örnek, bir form aracılığıyla HTTP POST metodu ile gönderilen kullanıcı adını ve şifresini nasıl işleyeceğimizi gösterir. Yine bir HTML formu ile başlayalım:
    
    POST Örneği 
    Giriş Yap (POST)
    
Şimdi de giris.php dosyasında bu veriyi işleyelim:
Hoş geldiniz, " . $kullanici_adi . "!";
    } else {
        echo "Kullanıcı adı veya şifre yanlış.
";
    }
} else {
    echo "Lütfen kullanıcı adı ve şifrenizi girin.
";
}
?>Örnek 3: $_SESSION Kullanımı
Bu örnek, oturum değişkenlerini kullanarak kullanıcı girişini simüle eder ve kullanıcının adını oturumda saklar.
Oturum başlatıldı ve 'kullanici_adi' Mehmet olarak ayarlandı.";
echo "";
?>
Oturumdaki kullanıcı adı: " . htmlspecialchars($_SESSION['kullanici_adi']) . "";
} else {
    echo "Oturumda 'kullanici_adi' bulunamadı.
";
}
echo "";
?>
Oturum sonlandırıldı.";
echo "";
?>Örnek 4: $_SERVER Kullanımı
Bu örnek, $_SERVER değişkeni aracılığıyla sunucu ve istek bilgilerine nasıl erişileceğini gösterir.
Sunucu Bilgileri";
echo "İstek Metodu: " . $_SERVER['REQUEST_METHOD'] . "
";
echo "Sunucu Adı: " . $_SERVER['SERVER_NAME'] . "
";
echo "Sunucu Yazılımı: " . $_SERVER['SERVER_SOFTWARE'] . "
";
echo "İstek URI: " . $_SERVER['REQUEST_URI'] . "
";
echo "Kullanıcının IP Adresi: " . $_SERVER['REMOTE_ADDR'] . "
";
// Tüm _SERVER değişkenlerini görmek için:
// echo "";
// print_r($_SERVER);
// echo "
";
?>Önemli Notlar ve Güvenlik İpuçları
Veri Doğrulama ve Filtreleme: Kullanıcıdan gelen tüm girişler (
$_GET,$_POST,$_COOKIEvb.), herhangi bir işlem yapılmadan veya veritabanına kaydedilmeden önce mutlaka doğrulanmalı ve filtrelenmelidir. Bu, SQL enjeksiyonu, XSS (Cross-Site Scripting) ve diğer güvenlik açıklarına karşı kritik bir önlemdir. PHP'ninhtmlspecialchars(),strip_tags(),filter_var()gibi fonksiyonları bu amaçla kullanılabilir.$_REQUESTKullanımından Kaçınma: Değişken önceliği ayarları nedeniyle$_REQUESTkullanımı, beklenmedik sonuçlara yol açabilir. Mümkün olduğunca spesifik olarak$_GETveya$_POSTkullanılması daha güvenli ve öngörülebilirdir.isset()ile Kontrol: Öntanımlı değişkenlerdeki bir anahtara erişmeden önce, o anahtarın gerçekten var olup olmadığınıisset()fonksiyonu ile kontrol etmek iyi bir uygulamadır. Bu, "Undefined index" uyarılarını ve potansiyel hataları önler.Oturum Güvenliği: Oturum güvenliği için
session_start()her sayfanın başında çağrılmalı ve oturum kimliği sabitleme (session fixation) ve oturum kaçırma (session hijacking) gibi risklere karşı dikkatli olunmalıdır. Oturum verileri hassas bilgiler içeriyorsa, ek şifreleme veya token mekanizmaları düşünülebilir.Dosya Yükleme Güvenliği:
$_FILESile dosya yüklerken, yüklenen dosya türü, boyutu ve içeriği mutlaka doğrulanmalıdır. Kötü amaçlı dosyaların sunucuya yüklenmesini önlemek için sıkı kontroller uygulanmalıdır.Ortam Değişkenleri ve Hassas Bilgiler:
$_ENVve$_SERVERgibi değişkenler hassas sunucu veya sistem yapılandırma bilgilerini içerebilir. Bu bilgilerin yanlışlıkla son kullanıcıya gösterilmemesine dikkat edilmelidir.
        
                
            
            
Yorum yap
Yorumlar