Php Programlama – Php Global Değişkenleri

php-global-degiskenleri-banner-min

Php global değişkenleri Php tarafından önceden tanımlanmış belirli işlemleri yapmak için oldukça sık kullanılan değişkenlerdir. Php global değişkenleri php tarafından tanımlandığı için değiştirilemezler. Ancak yazımı kolaylaştırmak için fonksiyonlara aktarılabilir. İlerleyen konularda php global değişkenleri nasıl fonksiyonlara aktarılarak daha kısa ve kolay yazım ile kullanılır bahsedeceğim.

Php global değişkenleri aşağıdaki listeden inceleyelim. Liste sık kullanılan php global değişkenleri vardır. Detayları alt başlıklardan inceleyebilirsiniz.

  • $GLOBALS
  • $_POST
  • $_GET
  • $_SERVER
  • $_SESSION
  • $_COOKIE
  • $_FILES

Listedeki Php global değişkenlerinin çoğunluğu sıklıkla kullanılmaktadır. Liste sırası rastgeledir. Herhangi bir önemi yoktur. 

$GLOBALS Php Global Değişkeni

Global adından da anlaşılacağı gibi küresel, kapsayan demektir. Php uygulamamızda örneğin bir fonksiyon içine yazdığımız değişkene sadece o fonksiyon içerisinde erişebiliriz ya da fonksiyon dışındaki değişkene fonksiyon içerisinde erişemeyiz. İşte bu sorunu ortadan kaldırmak için $GLOBALS php global değişkeni kullanılmaktadır.

Örnek kullanım:

<?php 
function deneme(){
  $sayi1 = 5;
  echo "Fonksiyon içindeki sayı :".$sayi1;
  echo "Fonksiyon dışındaki sayı :" . $GLOBALS["sayi1"];
}
$sayi1 = 10;
deneme();
?>

Yukarıdaki kodu incelemediğimizde aynı isimde farklı değerlere sahip $sayi1 değişkeni var. Değişkenin biri fonksiyon içinde biri fonksiyon dışında tanımlanmış. Fonksiyon dışındaki $sayi1 değişkenine erişmek için $GLOBALS php global değişkenini kullandık. Eğer $GLOBALS php global değişkenini kullanmasaydık ekrana sadece 5 yazacaktı ve ikince echo komutu uyarı verecekti.

Örnek kullanım:

<?php
$sayi2 = 20; 
function deneme2(){
 
  echo $sayi2; /*Bu şekilde kullanım hatalıdır. Değişken değerine erişilemez. */
  
  echo $GLOBALS["sayi2"]; /*Bu şekilde kullanım doğrudur. Değişken değerine erişilebilir. */
}
deneme2();
?>

Yukarıdaki kodu incelediğimizde sadece $sayi2 değişkeni tanımlanmış. Bu değişken fonksiyon dışında oluşturulmuş ancak fonksiyon içinde kullanılmış. İşte $sayi2 değişkenini fonksiyon içinde kullanabilmek için $GLOBALS php global değişkeninden yardım almamız gerekiyor aksi halde fonksiyon dışındaki $sayi2 değişkeninin değerine erişemeyiz.

$_POST Php Global Değişkeni

$_POST php global değişkenleri form işlemlerinde olmazsa olmaz bir php global değişkenidir. Php Programlama – Php ile Form Kullanımı yazımda formlarda nasıl kullanıldığı hakkında bilgi sahibi olabilirsiniz. Eğer formda method=”POST” ise $_POST global değişkeni ile gönderilen değişkenlerin taşıdığı verilere ulaşabilirsiniz.

Örnek kullanım:

form.php dosyası oluşturalım ve aşağıdaki kodları yazalım.

<form action="kontrol.php" method="post">
Kullanıcı Adı : <input type="text" name="k_adi" /> <br/>
Şifre :<input type="password" name="sifre" /> <br/>
<input type="submit" value="Giriş" />
</form>

kontrol.php dosyası oluşturalım ve aşağıdaki kodları yazalım.

/* Formdaki method="POST" olduğu için $_POST 
global değişkeni kullandığımızı gözden kaçırmayalım. */
$kullanici_adi = $_POST["k_adi"]; 
$sifre = $_POST["sifre"];
if($kullanici_adi == "admin" && $sifre == "12345"){
echo "Giriş yapıldı.";
}else{
echo "Girmiş olduğunuz bilgiler geçersiz.";
}

Yukarıda basit bir form uygulaması örneği verdim. Kodları inceleyerek $_POST php global değişkeninin nasıl kullanıldığı hakkında fikir sahibi olabilirsiniz. Başta belirttiğim gibi formdaki method=”post” ise formdan gönderilen verileri $_POST global değişkeni ile elde edebiliriz.

$_GET Php Global Değişkeni

Mantığı $_POST php global değişkenleri ile aynıdır. Burada form method=”get” olacağından gönderilen verilere $_GET global değişkeni ile ulaşabiliriz. $_POST global değişkenindeki örneğin aynısını $_GET kullanarak deneyebilir ve aradaki farkı gözlemleyebilirsiniz. Burada unutmamanız gereken önemli nokta formlardan GET ile gönderilen veriler adres çubuğunda görüntülenebilir ve değiştirilebilir olduğu için şifre, banka hesabı gibi bilgilerin GET ile gönderilmemesidir. Bu tarz güvenlik gerektiren işlemler için POST kullanmanız gerektiğini unutmayın.

Php Programlama – Php ile Form Kullanımı yazımdan formlarda $_GET ve $_POST kullanımı arasındaki farkları daha detaylı inceleyebilirsiniz.

$_SERVER Php Global Değişkeni

$_SERVER php global değişkenleri isminden anlaşılacağı gibi sunucu hakkında bilgilere erişmek için kullanılan bir php global değişkenidir. Bu değişken aldığı değere göre bilgiler döndürmektedir. $_SERVER değişkeninin aldığı en sık kullanılan değerleri tablodan inceleyebilirsiniz.

DeğerAçıklama
SERVER_ADDRSunucumuzun IP adresini verir.
SERVER_NAMESunucumuzun adını verir.
DOCUMENT_ROOTProgramımızın çalıştığı dizinin tam adresini verir.
HTTP_REFERERSitemize giren ziyaretçinin hangi sunucu üzerinden geldiğinin bilgisini verir.
HTTP_USER_AGENTZiyaretçinin kullandığı tarayıcı hakkında bilgi verir.
HTTP_HOSTProgramımızın çalıştığı sunucunun adresini verir. Domain diyebiliriz.
REQUEST_METHODSayfaya erişim yöntemini verir. GET, POST gibi
REMOTE_ADDRZiyaretçinin IP adresini verir.
REMOTE_HOSTZiyaretçinin siteyi görüntülediği sunucunun adını verir.
REMOTE_PORTZiyaretçinin kullandığı portu verir.
SERVER_PROTOCOLSunucu protokolünün ismini verir.
SCRIPT_FILENAMEUygulamanın tam fiziksel yolunu verir.

Örnek kullanım:

<?php 
echo $_SERVER["DOCUMENT_ROOT"];
?>

Diğer değerleri kendi localhost sunucunuzda deneyerek sonuçları görebilirsiniz. 

$_SESSION Php Global Değişkeni

$_SESSION php global değişkenleri web sitelerinde oturum açmaya olanak sağlayan ve verileri sunucuda saklayan bir global değişkendir. Üye girişi, alışveriş sepetindeki ürünlerin bilgileri gibi verileri kullanıcı tarayıcıyı kapatana kadar saklayan bir değişkendir. Tarayıcı kapatıldığında oturum sona erer ve veriler silinir. $_SESSION değişkenini kullanmak için önce session_start() php fonksiyonunun çağırılması şarttır. Örnek kullanımda inceleyelim.

Örnek kullanım:

<?php 
/* sessionu başlattık*/
session_start();
/* ismi adi ve eposta olan sessiona değer atadık. */
$_SESSION["adi"] = "Mustafa AZAK";
$_SESSION["eposta"] = "eposta@mustafaazak.com";
/* değer atadığımız bu sessionların ekrana yazdırılışı. */
echo "Sisteme giriş başarı :". $_SESSION["adi"] . " " . $_SESSION["eposta"];
?>

Yukarıda basit bir şekilde $_SESSION kullanımını gösterdik.  $_SESSION‘ların tarayıcı açık olduğu sürece saklandığını söylemiştik ancak bazı durumlarda $_SESSION değişkenindeki değeri silmek isteriz. $_SESSION değişkeninin değerini silmek için örneği inceleyin.

Örnek kullanım:

index.php oluşturalım ve aşağıdaki kodları yazalım.

<?php 
/*session başlatıyoruz*/
session_start();

$_SESSION["admin"] = "Mustafa AZAK";

echo 'Başarıyla giriş yaptınız.' .$_SESSION["admin"];
echo '<br/> <a href="cikis-yap.php">Çıkıp Yap</a>';
?>

Bir siteye giriş yaptığımızı düşünelim. Giriş yaptığımızda kullanıcı adımız bir sessiona atanır ve oturum açmış oluruz. Çıkış yaptığımızda ise bu session yok edilir ve çıkış yapmış oluruz. Bu örnekte hem giriş – çıkış mantığını hem de oluşturduğumuz $_SESSION değişkenini silmeyi öğrenmiş olacağız.

cikis-yap.php oluşturalım ve aşağıdaki kodları yazalım.

<?php 
error_reporting(0); // session değişkenimiz silindiği için uyarı mesajı verecektir gizlemek için bu fonksiyonu kullandık.
unset($_SESSION["admin"]);  // ismi admin olan sessionu yok ettik 
echo "Çıkış yapıldı.";
?>

Tabi ki oturum açma işlemi böyle basit değil birçok kontrol yapılması gerekiyor. Ancak mantık bu şekildedir. Oturum açma işlemlerinde genellikle $_SESSION kullanılır.  $_COKIE de kullanılabilir ancak pek güvenli değildir. 

Örnek kullanım:

Birden fazla session oluşturduk şimdi bu sessionları tek tek kim yok edecek diye düşünebilirsiniz. Bunları topluca yok etmek içinde bir fonksiyon vardır. Kodları inceleyelim.

index.php oluşturalım ve aşağıdaki kodları yazalım.

<?php 
// session başlattık
session_start();
// ismi adi olan bir session oluşturduk
$_SESSION["adi"] = "Mustafa AZAK";
// ismi eposta olan bir session oluşturduk
$_SESSION["eposta"] = "eposta@mustafaazak.com";
// $_SERVER değişkeninden bahsetmiştik kullanıcının ip adresini aldık.
$ip = $_SERVER['REMOTE_ADDR'];
// $ip değişkeninin değerini sessiona atadık.
$_SESSION["ip"] = $ip;

echo "Adı : ". $_SESSION["adi"]."<br/>";
echo "Eposta : ". $_SESSION["eposta"]."<br/>";
echo "Ip : ". $_SESSION["ip"]."<br/>";
echo '<a href="cikis-yap.php">Cıkış yap </a>';
?>

Yukarıda birden fazla $_SESSION oluşturduk ve $_SESSION’ların sakladığı değerleri ekrana yazdırdık.

cikis-yap.php oluşturalım ve aşağıdaki kodları yazalım.

<?php 
error_reporting(0);
echo "Adı : ".$_SESSION["adi"]."<br/>";
echo "Eposta : ".$_SESSION["eposta"]."<br/>";
echo "IP : ".$_SESSION["ip"]."<br/>";
session_destroy();
echo "Başarıyla çıkış yapıldı";
?>

Kodları çalıştırdığınızda index.php de oluşan sessionların cikis-yap.php de görüntülenmediğini silindiğini göreceksiniz. Tüm sessionları topluca silmek, yok etmek için session_destroy() fonksiyonunu kullandık.

$_COOKIE Php Global Değişkeni

Sitemize gelen ziyaretçileri tekrar tanımak için kullanılan bir değişkendir. Ziyaretçinin bilgisayarına çerez diye tabir edilen bir metin dosyası oluşturur. Bu dosyalar sürelidir. Aynı siteye tekrar girdiğinizde çerez dosyası var ise okunur ve site sizi tanımış olur. Basit bir örnek vermek gerekirse bir siteye giriş yaparken Beni hatırla şeklinde bir işaret kutusu olur burayı işaretleyerek giriş yaptığınızda bilgisayarınıza bir çerez $_COOKIE bırakılır. Böylece tekrar giriş yapmak istediğinizde kullanıcı adınızın orada kayıtlı olduğunu görebilirsiniz.

setcookie(“cerez_adi”, “veri”, “time()+3600”);

Çerez süreleri saniyeler ile belirlenir. 3600 değeri burada 1 saati ifade eder.

60*60 = 3600 saniye = 1 saat

60*60*24 = 86400 saniye = 1 günü ifade eder.

Çerez süresileri bu şekilde uzatılabilir.

Örnek kullanım:

<?php 
if(!$_COOKIE["adsoyad"]){
setcookie ("adsoyad", "Mustafa AZAK", time()+60);
}else{
echo "Merhaba". $_COOKIE["adsoyad"];
}
?>

Basit bir koşul ifadesi ile adsoyad adında bir çerez yok ise bir çerez oluşturmasını var ise bu çerezin sakladığı veriyi ekrana yazdırmasını söyledik. 

Bazı alışveriş sitelerinde sepete eklediğimiz ürünlerin siteyi başka bir gün tekrar ziyaret ettiğimizde sepette durduğunu görebiliriz. İşte bize bu imkanı sağlayan $_COOKIE php global değişkenidir.

$_FILES Php Global Değişkeni

$_FILES php global değişkenleri kullanıcıların dosya yüklemesi için kullanılır. Formlardan gönderilen dosyalara ilişkin bilgiler $_FILES global değişkeni ile elde edilir. $_FILES kullanımı örnek üzerinden inceleyelim.

Örnek kullanım:

index.php oluşturalım ve aşağıdaki kodları yazalım.

<?php 
if($_FILES){
echo "<pre>";
print_r ($_FILES);
echo "</pre>";
}
?>
<form action="#" method="post" enctype="multipart/form-data">
<input type="file" name="dosya" />
<input type="submit" value="Kaydet" />
</form>

Yukarıdaki kodları incelediğimizde bir dosya yükleme formu mevcut ve yüklenen dosyanın bilgileri ekrana yazdırılmıştır. Ekran görüntüsünü inceleyerek $_FILES değişkeni ile hangi özelliklere erişebileceğimizi görebilirsiniz.

name : dosyanın gerçek ismidir.

type : dosyanın tipini belirtir.

tmp_name : dosyanın bilgisayarınızdaki geçici yoludur.

error : hata kodudur ve 0 ise bir hata yoktur.

size : dosyanın boyutudur.

$_FILES kullanımını dosya yükleme konularında daha detaylı olarak göreceksiniz.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir