Php Süper Global Değişkenler

Php Süper Global Değişkenler

Php süper global değişkenler php dilinin olmazsa olmaz değişkenleridir. Süper global değişkenler ile formdan veri alma, dosya yükleme, oturum açma, çerez oluşturma, sistem bilgisi alma, ziyaretçi hakkında bilgi topla gibi işlemleri yapabiliriz. En çok başvuracağınız php süper global değişkenleri $_POST, $_GET, $_COOKIE, $_SESSION ve $_FILES olacaktır.

DeğişkenAçıklama
$GLOBALSBir değişkeni uygulamamızdaki herhangi bir yerde kullanmamızı sağlar.
$_POSTFormdan gelen veriyi elde etmek için kullanılır fakat form metodunun method=’post’ olarak tanımlanmış olması gerekir.
$_GETFormdan gelen veriyi elde etmek için kullanılır fakat form metodunun method=’get’ olarak tanımlanmış olması gerekir.
$_SESSIONOturum nesneleri oluşturmak için kullanılır.
$_COOKIEKullanıcının bilgisayarında çerez nesneleri oluşturmak için kullanılır.
$_REQUEST$_POST, $_GET ve $_COOKIE değişkenlerinin değerlerini tek başına alabilir.
$_SERVERSunucu bilgilerini verilen anahtar doğrultusunda elde eder. Ip adresi, mevcut sayfa adresi, tarayıcı tipi vs.
$_FILESHer türden dosyanın sunucuya yüklenmesi için kullanılır.
$_ENVSistem değişkenlerini saklayan bir değişkendir.

$GLOBALS php süper global değişkeninin örnek kullanımını aşağıda inceleyelim. Fonksiyon içerisinde ve fonksiyon dışarısında a değişkeni tanımladık bu iki a değişkeninin değerleri birbirinden farklıdır. Fonksiyon içerisinde $GLOBALS süper global değişkenini kullanarak fonksiyon dışında tanımlamış olduğumuz a değişkeninin değerine erişebiliyoruz.

<?php
function test() {
    $a = "yerel değişken";

    echo '$a değişkeni global değeri: ' . $GLOBALS["a"] . "<br/>";
    echo '$a değikeni yerel değeri: ' . $a . "<br/>";
}

$a = "Örnek";
test();
?>

$_POST süper global değişkeni formlar aracılığı ile kullanıcıdan veri elde etmek için kullanıyoruz. $_GET süper global değişkeni de $_POST süper global değişkeni ile aynı işlemi yapmaktadır fakat $_GET süper global değişkeni ile alınan veriler tarayıcının adres çubuğunda göründüğü için kullanımı güvenli değildir. Bu sebeple kullanıcı girişi, üyelik formu gibi gizlilik gerektiren işlemlerde $_POST php süper global değişkeni kullanılmaktadır.

$_GET ve $_POST php süper global değişkenleri formlar ile birlikte kullanılmaktadır. Bu nedenle Php ile Form Kullanımı başlıklı yazıma göz atmanızı öneririm.

$_SESSION (Oturum) Php Süper Global Değişkeni

$_SESSION süper global değişkeni oturum açmayı ve oturum bilgilerini saklamayı sağlar. Tarayıcı açık olduğu sürece session nesneleri sunucuda saklanır. Kullanıcı tarayıcı kapattığında veya sayfayı terk ettiğinde oturum süreleri sıfırlanır. Aynı anda birden fazla farklı isimlerde session nesneleri oluşturabilirsiniz.

Session başlatmak için session_start() fonksiyonunu kodumuzun en başında çağırmamız gerekir.

<?php
session_start(); // session başlatıyoruz
$_SESSION['kullanıcı_adi'] = 'Mustafa'; // kullanici_adi adlı sessiona değer atadık
$_SESSION['eposta'] = 'eposta@mustafaazak.com';
$_SESSION['ip_adresi'] = $_SERVER['REMOTE_ADDR'];
echo  'Kullanıcı adınız : '.$_SESSION['kullanıcı_adi']; // kullanici_adi adlı sessionın sakladığı değeri yazdırdık
?>

Yukarıda basit örnekte session başlattık ve kullanici_adi isimli sessiona Mustafa değerini atadık. Tanımlamış olduğumuz bu sessiona uygulamamızdaki farklı sayfalardan aynı isim ile erişmemiz mümkündür. Burada dikkat etmemiz gereken önemli nokta session_start fonksiyonunu kullanmadan önce session nesnelerini kullanılamaz.

Üyelik sistemi olan web sitelerde giriş ve çıkış işlemleri session nesneleri aracılığı ile yapılmaktadır. Giriş işlemi bir session başlatarak ve başlatılan sessiona değer atayarak yapılmaktadır. Çıkış işlemleri ise sessiona atanan değeri silerek ve session nesnelerini sonlandırarak yapılmaktadır.

Session nesneleri sonlandırmak için session_destroy fonksiyonu kullanılmaktadır. session_destroy fonksiyonu tanımlı olan tüm session nesnelerini sonlandırır. Eğer sessionlardan bazılarını sonlandırmak istiyorsanız unset fonksiyonunu kullanabilirsiniz.

Daha detaylı $_SESSION kullanımı için Php Session Kullanımı başlıklı yazıma göz atabilirsiniz.

<?php
session_destroy(); // tüm oturum nesneleri sonlandırır
/* Veya */
unset($_SESSION['ip_adresi']); // Sadece ip_adresi isimli sessionı sonlandırır
?>

$_COOKIE (Çerez) Php Süper Global Değişkeni

$_COOKIE global değişkeni daha önceden tanımlanmış çerezi okumak için kullanıyoruz. Çerezleri alışveriş sitelerinde sepetteki ürünleri saklamak, formlardaki beni hatırla butonu aracılığı ile verileri saklamak için kullanılabilir. Çerezlerde şifre gibi güvenlik gerektiren bilgilerin saklanmaması gerekir. Çünkü çerezler kullanıcının bilgisayarında saklanır ve erişilmesi mümkündür. Bir çerez tanımlaması yapmak için setcookie fonksiyonunu kullanıyoruz.

<?php
setcookie('kullanici_adi','Admin',time()+(60*60*24*30))
?>

Yukarıdaki örnekte birinci parametre çerezin adını, ikinci parametre çerezin saklayacağı veriyi ve üçüncü parametre çerezin saklanma süresini temsil etmektedir. time fonksiyonu ile unix zaman belirleyebiliriz veya aşağıdaki örnekteki gibi strtotime fonksiyonu ile zaman tanımlaması yapabiliriz. Zaman tanımlamaları için Php Tarih ve Zaman Fonksiyonu başlıklı yazımı inceleyebilirsiniz.

<?php
setcookie('kullanici_adi','Admin',strtotime(+7 days))
?>

Çerezlerin değerini okumak için anahtar değeri ile çağırırız. Yukarıda tanımladığımız çerezin sakladığı değeri aşağıdaki örnek ile ekrana yazdırdık.

<?php
echo $_COOKIE['kullanici_adi']; 
?>

Tanımladığımız çerezleri süresi dolmadan önce silebiliriz. Çerezlerin silinmesi için tersine tanımlama yapılmaktadır. 7 günlük tanımlamış olduğumuz çerezi -7 days veya time fonksiyonu ile geçmiş zaman değeri girerek silebiliriz. Çerezleri silmek için geçmiş zaman değeri girmemiz yeterlidir.

Daha detaylı $_COOKIE kullanımı için Php Cookie Kullanımı başlıklı yazıma göz atabilirsiniz.

<?php
setcookie('kullanici_adi','Admin',strtotime('-7 days'));
?>

$_FILES Dosya Yükleme Süper Global Değişkeni

$_FILES süper global değişkeni formlar aracılığı ile sunucuya dosya yüklemek için kullanılır. Dosya yükleme esnasında yüklenecek dosyanın cinsi (pdf,jpg,png,gif,docx,xlsx,rar,exe vs.) ve dosyanın boyutu oldukça önemlidir. Dosya uzantısını ve boyutunu filtreleyerek amaca uygun dosya yüklenmesini sağlayabilir ayrıca gereksiz alan doluluğunun önüne geçmiş oluruz.

<h4>Dosya Yükle</h4>
<form action="yukle.php" method="post" enctype="multipart/form-data">
    <input type="file" name="dosya"/> <br/><br/>
    <input type="submit" />
</form>

Yukarıda basit bir yükleme formu oluşturduk ve bu form aracılığı ile sunucuya yükleme işlemini gerçekleştirmek için aşağıdaki kodları kullanıyoruz. Formda action kısmına dikkat edin dosya yükleme kodlarını yukle.php isimli dosyada gerçekleştiriyoruz.

<?php
if (move_uploaded_file($_FILES['dosya']['tmp_name'],$_FILES['dosya']['name'])){
    echo 'Dosya yüklendi';
}else{
    echo 'Dosya yükleme başarısız';
}
?>

Dosya yükleme işlemi en basit ve kontrolsüz hali ile yukarıdaki örnekteki gibidir. Daha detaylı dosya yükleme işlemi için Php Dosya Yükleme Nasıl Yapılır? başlıklı yazıma göz atabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Exit mobile version