PHP'DE ÖN TANIMLI DEĞİŞKENLER
1)SÜPER KÜRESELLER
*$GLOBALS
*$_SERVER
*$_GET
*$_POST
*$_FILES
*$_COOKIE
*$_SESSION
*$_REQUEST
*$_ENV
2)$php_errormsg
3)$HTTP_RAW_POST_DATA
4)$http_response_header
5)$argc ve $argv
1)SÜPER KÜRESELLER
$GLOBAL
Küresel alanda bulunan bütün değişkenleri içerir.
ÖRNEK
$_SERVER
Sunucu ve işletme ortamı bilgisi
ÖRNEK
$_POST
Bu değişken post metoduyla çekilen verilerin ele alınmasını sağlar. HTTP POST metodunun değişken dizisinin bir elemanıdır.
POST metoduyla gönderilen bilgilerin büyüklük sınırı yoktur ve kullanıcı tarafından görülmez.
ÖRNEK
"bilgi.php" dosyasını aşağıdaki gibi oluşturalım.
İSSET fonksiyonu, parametre olarak verilen değişkenin tanımlı olup olmadığını kontrol eder.
$_GET
Method=”get” ifadesiyle bilgilerin GET metodu ile gönderileceği belirtilmiştir. Aslında form yapılarında çoğu zaman POST metodu kullanılır. Get metodu pek kullanılmaz. Burada sadece get metodu ile bilgi göndermeye ve almaya örnek vermekteyiz.
$_GET değişkenini kullandığımızda bütün değişkenler isimleri ve değerleri url de görüntülenir. Yani şifte işlemleri ve özel veri aktarımı için bu method güvenli değildir. Gönderilen bilgi miktarının bir limiti vardır.(max:100 karakter gibi)
ÖRNEK
"gbilgi.php" dosyası aşağıdaki gibi oluşturalım.
$_SERVER
Php de sunucunun , clientin , tarayıcının ip veya diğer bilgilerini öğrenmek için server değişkenlerini kullanabiliriz.Bu değişkenlerin tamamını kullanabilmemiz için gerekli tüm izinlerin sunucu sahibi tarafından sağlanması gerekir.Aksi takdirde betiklerin sadece bir bölümü çalışacaktır .
GATEWAY_INTERFACE
CGI(Common Gateway Interface) bir web sunucusunun aynı makinadaki programlarla ve o programların web sunucusuyla olan iletişimlerini düzenleyen kurallara verilen addır.Bu konuda CGI versiyonu görebiliriz.
<? php echo $_SERVER['GATEWAY_INTERFACE']; ?>
SERVER_ADDR
Bu komutla sunucumuzun IP adresini alabiliriz.
<? pho echo $_SERVER['SERVER_ADDR'] ?>
SERVER_NAME
Bu komutla sunucumuzun ismini öğrenebiliriz.
<? php echo $_SERVER['SERVER_NAME']; ?>
SERVER_SOFTWARE
Bu komut ile sunucumuzun işletim sistemini,php sunucumuzun işletim sistemini ve php versiyonunu öğrenebiliriz.
<? php echo $SERVER['SERVER_SOFTWARE']; ?>
SERVER _PROTOCOL
Bu komut ile sayfamızın sorgu yaparken hangi protokolü kullandığını öğrenebiliriz
<? php echo $_SERVER['SERVER_PROTOCOL']; ?>
QUERY_STRING
Bu komut ile adres çubuğumuzdaki querystringleri alabilirz.
<?php echo $_SERVER['OUERY_STRING']; ?>
DOCUMENT_ROOT
Bu komut php dosyalarınızın çalıştığı klasörün adresini verir.
<?php echo $_SERVER['DOCUMENT _ROOT']; ?>
HTML_ACCEPT
Bu komut html sayfamızda kabul edilen içerik türlerini öğrenmemize olanak sağlar.
<?php echo $_SERVER['HTTP_ACCEPT']; ?>
HTML_ACCEPT_CHARSET
Bu komut html sayfamızdaki varsayılan karakter setlerini öğrenmemize olanak sağlar.
<?php echo $_SERVER['HTTP_ACCEPT_CHARSET']; ?>
HTML_ACCEPT_LANGUAGE
Bu komut html sayfamızdaki varsayılan dili öğrenmemize olanak sağlar.
<?php echo $_SERVER['HTTP_ACCEPT_LANGUAGE']; ?>
HTML_USER_AGENT
Bu komut clientimizin tarayıcısıyla ilgili öğrenebiliriz.
<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
REMOTE_ADDR
Bu komut ile clientimizin IP adresini öğrenebiliriz.
<?php echo $_SERVER['REMOTE_ADDR']; ?>
REMOTE_PORT
Bu komut ile clientimizn sunucusuyla iletişim portunu öğrenebiliriz.
<?php echo $_SERVER['REMOTE_PORT']; ?>
SERVER_ADMIN
Bu komut ile server adminizin iletişim bilgilerini öğrenebiliriz.
<?php echo $_SERVER['SERVER_ADMIN']; ?>
SERVER_PORT
Bu komut ile serverımızın portunu öğrenebiliriz.
<?php echo $_SERVER['SERVER_PORT']; ?>
SCRIPT_NAME
Bu komut ile çalışan betiğimizin adını öğrenebiliriz.
<? php echo $_SERVER['SCRIPT_NAME']; ?>
Ekran Çıktısı:
$_FILES
Dosya yükleme değişkenleri.Seçtiğimiz dosyayı gönderme yada başka bir klasöre yükleme yapabiliriz.
"file.php" adında dosyamızı oluşturalım.
"gonder.php" dosyamızıda oluşturalım.
Ekran Çıktıları:
$_FILES["file"]["error"]
Bu bir hata kodudur.Dosya yüklenmesinde eğer bir sorun ile karşılaşıldıysa karşılaşılan sorun
$_FILES["file"]["name"]
Yüklediğimiz dosyanın adı
$_FILES["file"]["type"]
Yüklenilen dosyanın türü
$_FILES["file"]["size"]
Yüklediğimiz dosyanın büyüklüğü
$_FILES["file"]["tmp_name"]
Yüklediğimiz dosyanın sunucu tarafından oluşturulan geçici kopyasının adını bizlere vermektedir.
ÖRNEK
$_COOKIE
Geçerli betiğe HTTP çerezleri üzerinden aktarılan bütünleşik bir değişken dizi.
Cookie’lerin (çerezlerin) yönetiminde kullanılır.
Girilen sitelerin tarayıcılar üzerinde bıraktığı izlere cookie denir. Bu izler siteye tekrar ziyaret edildiğinde yeniden gönderilerek bazı şeylerin yeniden hatırlanmasını sağlar. Kullanıcı adı ve şifremizi gibi. Şimdi cookileri oluşturma, silme, kullanma ve değerini değiştirme işlemlerine tek tek bakalım.
Cookie Oluşturma
PHP'de cookie oluşturma işini bir setcookie() fonksiyonu ile yapıyoruz.Fonksiyonda tarayıcıya gönderilecek ve saklanacak olan değerin anahtarını ve içeriğini belirttiğimiz gibi birde ne kadar süre tarayıcıda saklanacağını belirtiyoruz.
Eğer çerezin bizim istediğimiz bir gelecek tarihte silinmesini istiyorsakta 3. parametreyi devreye sokacağız.
time()+(60*60*24) saniye cinsinden tam olarak 24 saat yani 1 gün cookie hatırlanacaktır.
Cookie Silme
Oluşturduğumuz cookie slmek için yine yeni bir çerez tanımlarmış gibi setcookie() fonksiyonunu kullanıyoruz.Tek fark 3.parametre olan tarihde geçmiş zamana gitmiş oluyoruz böylece cookienin zamanı dolmuş olup siliniyor.
Cookie Kullanımı
Çerez kullanımı $_COOKIE dizisi üzerinden yapılır.Bu dizi otomatik olarak o sayfaya gönderilen çerezlere göre oluşur.
Cookie Değerini Değiştirmek
Çerezleri oluşturmakta ve silmekte olduğu gibi değerini değiştirmekdede setcookie() fonksiyonunu kullanıyoruz.Ve oluşturmakta olduğu gibi değerini değiştirmekle aynıdır.Sadece çerez adına önceden tanımladığımız adı yazmamız yeterli.
Cookie Tanımlanmış Mı Diye Bakmak
Tüm değişkenlerin varlığını kontrol edecek olan isset() fonksiyonu ile bir çerezin var olup olmadığını kontrol edebiliriz.
Ekranda bir şey yazmaz,FALSE değeri döner.Eğer böyle bir çerez bulunsaydı ekranda 1 değeri yazardı.
$_SESSION
Session aynı çerezlerde olduğu gibi $_SESSION global dizisi ile okunur,fakat yazılması için çerezlerdeki gibi bir fonksiyona ihtiyaç duymaz.Çerezin son kullanma tarihini biz belirlerken sessionlar,tarayıcının kapatılmasıyla silinir.Yani siteye girildiğinde oluşturacağımız sessionlar,girenin sayfayı kapatmasıyla silinecektir.Kullanım,oluturma ve silme dışındaki asıl teknik farkıda sessionların tarayıcıya direkt olarak tanımlanmıyor olması.
Session ile Cookie arasındaki fark
Bunu şöyle açıklayayım; bir çerez tanımladığımızda bu çerezin adı ve değeri tarayıcıya açıkca gönderilir ve bu değer istenilen süre boyunca tarayıcıda açık bir şekilde saklanır.
Sessionda ise kaydedilen değer ve değerin adı tarayıcıya gönderilmez. Onun yerine PHPSESSIDadında içinde uzun bir session id değeri bulunan bir çerez tanımlanır. Ve bizim oluşturduğumuz sessionlar sunucuda saklanır ve girenlerin gönderdiği PHPSESSID kimliğine göre kime ait oldukları bulunur ve yeniden düzenlenir.
Session Nerelerde Kullanılır
Oturumun kapanmasıyla silinmesi ve tekniği nedeniyle session verileri daha çok kullanıcılarınızın sitenize giriş yaptığında onları tarayıcıyı kapatana kadar giriş yapmış şekilde tutmanıza ve bazı yerlerde sanal sepet uygulamarını gerçekleştirmenizde kullanılır.
Session Oluşturma
Yukardada belirttiğim gibi $_SESSION global dizisi üzerinden okuyup,oluşturup,silebiliyoruz.Tek önemli nokta session kullanımına yada oluşturulmasına başlamadan önce bir kere sayfanın en başında sesion_start() fonksiyonu yazmalıyız,bu fonksiyon sessionu kullanıma hazırlar.
Yukarıda ilk önce session kullanımını başlattık ve ardından aynı bir dizi tanımlarmış gibi $_SESSION global dizisine mesaj anahtarına Selam dünya! değerini verdik. Yani mesaj adında bir session oluşturduk ve değerini Selam dünya! yaptık.
Bu oluşturduğumuz değer giren kişinin tarayıcısı kapatılmadığı sürece gezdiği her sayfaya tekrar geri gönderilecek ve bir önceki sayfada yaptığı işlemleri, kullanıcı adı ya da şifre gibi verileri bu şekilde yeniden hatırlanmasını sağlayacak.
Mesela session ile bir sayfada giren kişinin adını belirtmesini isteyip tüm sayfalarda onun bu adını hatırlatabilirim.
Session dizi(array) atama
Sessionlara yazı,sayı gibi değerler atadığımız gibi aynı zamanda dizide atayabilirz.Bunu yapmak için sıradan bir dizi tanımlıyor gibi yapıcağız.
Session Silme
Session silme işlemindede unset() fonksiyonunu kullanıyoruz.
Tüm Sessionları Silmek
Bu işlem içinde sesion_destroy() fonksiyonunu kullanacağız.Bu fonksiyon tanımlanmış tüm sessionları yok eder.
Session var mı diye kontrol etmek
Yine isset() fonksiyonunu kullanacağız.Bu fonksiyon içine yazdığımız session varsa olumlu yoksa olumsuz döner.
$_REQUEST
$_GET,$_POST ve $_COOKIE değişkenlerini beraberinde bulundurur.Çok gerekmedikçe kullanımı tavsiye edilmez.
ÖRNEK
"index.php" adında bir dosya oluşturup içine aşağıdaki kodları yazıyoruz.
"gonder1.php" adında bir doya daha açıp aşağıdak kodları yazalım
Çalıştırdığımızda aşağıdaki kutucuklar çıkar.Kutucukları doldurup "gönder" butonuna basıyoruz.
ve sonuç
$_ENV
Ortam değişkenleridir. Php yorumlayıcısının çalıştığı ortamdaki global namespace’idir.
$_ENV global değişkeni sistem değişkenlerini tutmaya yarayan bir süper küresel değişkendir. Platform özelliği, dosya yolu gibi bilgileri kullanmaya yarar.
ÖRNEK
2)$php _errormsg
$php_errormsg->Önceki hata iletisi
PHP tarafından üretilen son hata iletisinin metnini içeren bir değişkendir.Bu değişken sadece hatanın oluştuğu alanın içinde ve sadece track_errors (ön tanımlı değeri kapalıdır) ayar seçeneği açıldıysa geçerlidir.
3)$HTTP_RAW_POST_DATA
Ham POST verisidir. POST ile aldığımız mesaj çok karmaşık yada parçalı bir şekilde olabilir. Bunu $HTTP_RAW_POST_DATA ile çok güzel bir şekilde gösterebiliriz.
4)$http_response_header
HTTP yanıt başlıklarıdır. Bu dizi get_headers() işlevi gibidir. http sarmalayıcı kullanılırken, $http_response_header http yanıt başlıklarından oluşturulur.
ÖRNEK
5)$argc ve $argv
Php’de konsol uygulamalarında kullandığımız parametre değişkenleri vardir. $argv dizisi ile verilen parametreleri, $argc ile parametre sayısını alırız.
ÖRNEK