PHP'de Ön Tanımlı Değişken (Super Globals)
PHP programlama dilinin geliştiriciler için önceden tanımladığı bazı ön tanımlı değişkenler mevcuttur. Bu ön tanımlı değişkenlere Super Globals denir. Dış kaynaklı değişkenlerden, yerleşik ortam değişkenlerine, son hata iletisinden elde edilen başlıklara kadar geniş bir alanda kullanımları vardır. PHP'de 8 adet ön tanımlı değişken vardır. Bunları aşağıdaki tabloda açıklamaya çalıştım.
| Super Global | Açıklama |
$GLOBALS | Atanacak olan değişken için kapsama/etki alanını değiştirmekte kullanılır. Bu sayede global bir değişkene localden, localdeki bir değişkene de globalde ulaşabilmeyi mümkün kılar. |
$_SERVER | HTTP sunucusu tarafından oluşturulan, sunucu ve işletim sistemi ortamı bilgilerine ulaşabilmeyi sağlar. Üretilen değerler HTTP sunucusu ve yapılandırmalarına göre farklılık gösterebilir. |
$_GET | URL üzerinden gelen verilere ulaşabilmeye olanak sunar. Genellikle URL üzerinden gelen isteklerin ve form işleme işlemlerinin yapılmasında kullanılır. |
$_POST | İstek gönderim etiketleri aracılığı ile gelen verilere ulaşabilme imkanı tanır. Genellikle kapalı yöntemle gelen istekler ve form verilerinin işlenmesinde kullanılır. |
$_REQUEST | Hem URL üzerinden hem de istek gönderim etiketleri aracılı ile gelen verilere ulaşabilme imkanı tanır. $_GET ve $_POST süper evrensellerinin yaptığı işleri $_REQUEST süper evrenseli tek başına yapar. |
$_FILES | HTTP sunucusuna gönderilen yükleme isteği sırasında, yüklenmek istenen dosyanın verilerine ulaşabilmeyi sağlar. |
$_COOKIE | Herhangi bir kullanıcının web tarayıcısına yerleşmiş olan çerez verilerine ulaşabilmeyi sağlar. |
$_SESSION | Herhangi bir kullanıcı için oturum tanımlama ve tanımlanmış oturum verilerine ulaşmayı sağlar. |
$GLOBALS
$GLOBALS ön tanımlı değişkeni global bir alanda oluşturulmuş bir değişkene yerel bir alandan erişmeyi sağlar. Aynı zamanda yerel bir alanda tanımlanmış bir değişkene de global alandan erişime olana tanır.
Yerel alanda tanımlanmış bir değişkene global alandan erişim sağlamak için yerel alanda $GLOBALS ön tanımlı değişkeni kullanılarak değişken tanımlanmalıdır.
function yerel_alan_fonksiyonu(){
$GLOBALS["DegiskenAdi"] = "Değişkenin Değeri";
}
yerel_alan_fonksiyonu();
echo $DegiskenAdi;
yukarıdaki örneğin farklı bir kullanımı da aşağıdaki gibidir.
function yerel_alan_fonksiyonu(){
$GLOBALS["DegiskenAdi"] = "Değişkenin Değeri";
}
yerel_alan_fonksiyonu();
echo $GLOBALS["DegiskenAdi"];
Bunlar yerelde alanda oluşturulmuş değişkenlerin global alanda kullanımına örnekti. Örneklerden görebildiğiniz gibi yerel alanda $GLOBALS["DegiskenAdi"] olarak tanımladıktan sonra global alanda $GLOBALS["DegiskenAdi"] ya da $DegiskenAdi olarak erişebiliyorum.
Global alandaki bir değişkene yerel alandan erişebilmek için $GLOBALS ön tanımlı değişkenli versiyonunu kullanmak zorundayım.
$adiSoyadi = "Muhammet ŞAFAK";
function yerel_alan_fonksiyonu(){
echo $GLOBALS["adiSoyadi"];
}
yerel_alan_fonksiyonu();
$_SERVER
PHP'de ön tanımlı değişkenler arasında en geniş işleve sahip olanı $_SERVER süper evrenselidir. Sunucu hakkında bir çok bilgiye bu ön tanımlı değişken ile erişebiliriz. Hemen her projede kendine bir kullanım yeri bulur. Yine de sunucunun işletim sistemi ve yapılandırılmasına bağlı olarak her sunucu bunları sunmak zorunda değildir.
Aşağıdaki tabloda $_SERVER ön tanımlı değişkeni ile erişebileceklerinizin bir listesi bulunuyor. Bu listeyi hemen ezberlemek zorunda değilsiniz. Zamanla kullandıkça zaten farkında olmadan ezberleyeceksiniz. :)
| INDEX | Açıklama |
| PHP_SELF | Çalıştırılan betiğin, belge kök dizinine göreli dosya adını verir. /path/self.php gibi. |
| GATEWAY_INTERFACE | Sunucunun desteklediği CGI belirtiminin sürümünü içerir; 'CGI/1.1' gibi. |
| SERVER_ADDR | Betiğin çalıştığı sunucunun IP adresini döndürür. |
| SERVER_NAME | Betiğin çalıştığı sunucunun adını döndürür. |
| SERVER_SOFTWARE | Sunucu kimlik dizgesi, isteklere verilen cevap başlıklarının içinde verilir. |
| SERVER_PROTOCOL | Sayfa isteğinin yapıldığı protokolün ismi ve sürümünü döndürür; HTTP/1.1 gibi |
| REQUEST_METHOD | Sayfaya erişim için kullanılan istek yöntemini döndürür; GET, HEAD, POST, PUT gibi |
| REQUEST_TIME | İsteğin başlangıç zamanını döndürür |
| REQUEST_TIME_FLOAT | İsteğin başlangıç zamanını microtime cinsinden döndürür. |
| QUERY_STRING | Sorgu dizgesi, sayfaya erişirken kullanılabilir. |
| DOCUMET_ROOT | Geçerli betiğin altında çalıştığı belge kök dizinidir. |
| HTTP_ACCEPT | Geçerli isteğin Accept: başlığının içeriğidir. |
| HTTP_ACCEPT_CHARSET | Geçerli isteğin Accept-Charset: başlığının içeriğidir. iso-8859-9, utf-8 gibi. |
| HTTP_ACCEPT_ENCODING | Geçerli isteğin Accept-Encoding: başlığının içeriğidir. gzip gibi. |
| HTTP_ACCEPT_LANGUAGE | Geçerli isteğin Accept-Language: başlığının içeriğidir. tr, en gibi |
| HTTP_CONNECTION | Geçerli isteğin Connection: başlığının içeriğidir. Keep-Alive gibi |
| HTTP_HOST | Geçerli isteğin Host: başlığının içeriğidir. |
| HTTP_REFERER | Varsa kullanıcının tarayıcısını geçerli sayfaya gönderen sayfanın URL adresidir. Bu kullanıcı tarayıcısı tarafından belirtilir. Her tarayıcı bunu belirtmez ve bazıları HTTP_REFERER değiştirmeyi bir özellik olarak sunar. Yani bu bilgiye güvenilmez. |
| HTTP_USER_AGENT | Geçerli isteğin User-Agent: başlığının içeriğidir. Bu sayfaya erişen tarayıcıyı ifade eden bir dizgedir. Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 gibi bir yapısı vardır. |
| HTTPS | Eğer betik HTTPS protokolü ile sorgulanmışsa boş olmayan bir değer atanır. |
| REMOTE_ADDR | Geçerli sayfayı görüntüleyen kullanıcının IP adresidir. |
| REMOTE_HOST | Geçerli sayfayı görüntüleyen kullanıcının sunucu adıdır. Kullanıcının REMOTE_ADDR değerinden ters dns sorgusuyla elde edilir. |
| REMOTE_PORT | Kullanıcının makinesinin HTTP sunucusu ile haberleşmek için kullandığı porttur. |
| REMOTE_USER | Kimliği kanıtlanmış kullanıcı. |
| REDIRECT_REMOTE_USER | İstek dahilen yönlendirilmişse kimliği kanıtlanmış kullanıcı. |
| SCRIPT_FILENAME | Geçerli betiğin mutlak yoludur. |
| SERVER_ADMIN | HTTP sunucusu ayar dosyasındaki SERVER_ADMIN (Apache için) yönergesine verilen değerdir. Eğer betik bir sanal konak üzerinde çalışıyorsa, o sanal konak için için tanımlanmış değer olur. |
| SERVER_PORT | Haberleşme için HTTP sunucusu tarafından kullanılan porttur. Ön tanımlı kurulumlar için değeri '80'dir; örneğin SSL kullanımında bunu güvenli HTTP portu olarak ne tanımladıysanız ona değiştirebilirsiniz. |
| SERVER_SIGNATURE | Eğer etkinse, sunucu tarafından üretilen sayfalara eklenen, sunucu sürümünü ve sanal konak adını içeren dizgidir. |
| PATH_TRANSLATED | Sunucu gerekli sanaldan gerçeğe dönüşümleri yaptıktan sonra geçerli betiğin dosya sistemini (belge kökü değil) temel alan yoludur. |
| SCRIPT_NAME | Geçerli betiğin yolunu içerir. Kendi kendilerini göstermesi gereken sayfalar için kullanışlıdırlar. |
| REQUEST_URI | Sayfaya erişim için belirtilen URI; /index.html gibi |
| PHP_AUTH_DIGEST | Özetli HTTP kimlik doğrulaması yapılırken bu değişken istemci tarafından gönderilen 'Authorization' başlığında belirtilir (böylece siz de uygun geçerlilik denetimini yapmak için bunu kullanabilirsiniz). |
| PHP_AUTH_USER | HTTP kimlik doğrulaması yapılırken bu değişkene kullanıcı tarafından sağlanan kullanıcı adı atanır. |
| PHP_AUTH_PW | HTTP kimlik doğrulaması yapılırken bu değişkene kullanıcı tarafından sağlanan parola atanır. |
| AUTH_TYPE | Apache altında modül olarak HTTP kimlik doğrulaması yapılırken bu değişkene kullanılan kimlik doğrulama türü atanır. |
| PATH_INFO | İstemci tarafından sağlanan dosya yolunu içerir, dosya isiminin ardından bir sorgu dizgesi olsa bile bu gösterilmez. Örneğin betik http://lvh.me/php/info.php/some/stuff?foo=bar adresinde çalışıyorsa; /some/stuff döndürülür. |
| ORIG_PATH_INFO | PHP tarafından işlenmeden önceki özgün PATH_INFO |
Örnek kullanımı şu şekildedir;
echo $_SERVER["PATH_INFO"];
$_GET
URL üzerinden geçerli betiğe aktarılan değişkenlerden oluşan bir ilişkisel dizi. Dizinin yalnızca GET isteklerinden değil, bir sorgu dizesindeki tüm isteklerden oluşturulduğunu unutmayın.
<?php
echo "Merhaba " . $_GET['isim'] . "!";
?>
yukarıdaki gibi bir PHP dosyası oluşturup http://localhost/index.php?isim=Muhammet adresinden çağırdığımızı varsayarsak aşağıdaki çıktıyı üretecektir.
Merhaba Muhammet!
Bu işlem genellikle GET metodu ile gönderilmiş form verilerine erişim için kullanılır.
$_POST
HTTP isteklerinde Content-Type olarak multipart/form-data veya application/x-www-form-urlencoded kullandığında HTTP POST yöntemi kullanılarak geçerli betiğe aktarılan ilişkisel değişken dizisidir.
Bir örnek oluşturabilmek için aşağıdaki HTML kodları ile basit bir form oluşturalım. Ve örneğin kullanıcının adını girmesini isteyelim.
<form method="POST" action="gonder.php">
<input type="text" name="adiniz" placeholder="Adınızı girin!" />
<input type="submit" value="Gönder" />
</form>
şimdi gonder.php diye bir dosya oluşturup aşağıdaki kodları giriyoruz. (Dosya adı form etiketi içerisinde action tanımlanmasına gonder.php yazdığımız için bu şekilde.)
<?php
echo "Hoşgeldin, " . $_POST['adiniz'];
?>
Bu işlem genellikle POST metodu ile gönderilmiş form verilerine erişim için kullanılır.
$_REQUEST
$_REQUEST ön tanımlı değişkeni hem $_POST hem $_GET hem de $_COOKIE ön tanımlı değişkenleri gibi çalışır. Genellikle kullanılması tavsiye edilmez ancak bazı durumlarda işe yarar olabilir.
Örneğin bir arama sayfasında kullanıcıdan alacağınız veriyle arama işlemini yapacaksınız. Kullanıcı bunu Post ya da Get metodu ile gönderebilsin istiyorsunuz. İşte burada ihtiyacınız olan ön tanımlı değişken $_REQUEST oluyor.
Kullanım şekli ise $_GET ve $_POST ile birebir aynıdır.
echo $_REQUEST['anahtar_adi'];
$_FILES
En kısa tanımı ile HTTP üzerinden POST yöntemi kullanılarak geçerli betiğe yüklenmek istenen dosya ya da öğeye ait bilgilerin tutulduğu bir dizidir.
Kullanıcının sisteme resim, döküman vs gibi dosyalar yüklemesi gerektiği durumlarda kullanılır.
<form enctype="multipart/form-data" action="yukle.php" method="post">
<input type="file" name="inputName" />
<input type="submit" value="Yükle" />
</form>
Yukarıdaki form kullanıcının seçtiği bir dosyayı inputName adında PHP betiğimize yani sunucumuza gönderecektir.
print_r($_FILES['inputName']);
Yukarıdaki komut ile gönderilen dosyaya ait bilgileri bir dizi şekilde görebilirsiniz. Bu diziye ait INDEX'leri aşağıdaki tabloda görebilirsiniz.
| INDEX | Açıklama | Örnek |
| name | İstemcinin makinesindeki dosyanın asıl adıdır. | $_FILES['inputName']['name'] |
| type | Eğer tarayıcı bu bilgiyi sağladıysa dosyanın MIME türüdür. image/gif gibi ancak bu değer PHP tarafından kontrol edilmez. Kullanıcı farklı bir dosyayının MIME türünü farklı bir dosyaya tanımlayabilir. Yani buna güvenmemelisiniz. | $_FILES['inputName']['type'] |
| size | Yüklenen dosyanın bayt cinsinden boyutudur. | $_FILES['inputName']['size'] |
| tmp_name | Yüklenen dosyanın sunucuda saklandığı sıradaki geçici dosya adıdır. | $_FILES['inputName']['tmp_name'] |
| error | Dosyanın yüklenmesinde bir hata oluştuysa, hata kodunu verir. | $_FILES['inputName']['error'] |
PHP ile dosya yükleme işlemleri daha sonra farklı bir başlık altında detaylandırabilirim.
$_COOKIE
Geçerli betiğe HTTP Çerezleri üzerinden aktarılan bütünleşik bir değişken dizisidir.
$_COOKIE['cerezAdi'];
$_SESSION
Geçerli betikte kullanılabilecek oturum değişkenlerini içeren bir ilişkisel dizidir.
$_SESSION['oturumAdi'];
PHP programlama dilinin geliştiriciler için önceden tanımladığı bazı ön tanımlı değişkenler mevcuttur. Bu ön tanımlı değişkenlere Super Globals denir. Dış kaynaklı değişkenlerden, yerleşik ortam değişkenlerine, son hata iletisinden elde edilen başlıklara kadar geniş bir alanda kullanımları vardır. PHP'de 8 adet ön tanımlı değişken vardır. Bunları aşağıdaki tabloda açıklamaya çalıştım.
| Super Global | Açıklama |
$GLOBALS | Atanacak olan değişken için kapsama/etki alanını değiştirmekte kullanılır. Bu sayede global bir değişkene localden, localdeki bir değişkene de globalde ulaşabilmeyi mümkün kılar. |
$_SERVER | HTTP sunucusu tarafından oluşturulan, sunucu ve işletim sistemi ortamı bilgilerine ulaşabilmeyi sağlar. Üretilen değerler HTTP sunucusu ve yapılandırmalarına göre farklılık gösterebilir. |
$_GET | URL üzerinden gelen verilere ulaşabilmeye olanak sunar. Genellikle URL üzerinden gelen isteklerin ve form işleme işlemlerinin yapılmasında kullanılır. |
$_POST | İstek gönderim etiketleri aracılığı ile gelen verilere ulaşabilme imkanı tanır. Genellikle kapalı yöntemle gelen istekler ve form verilerinin işlenmesinde kullanılır. |
$_REQUEST | Hem URL üzerinden hem de istek gönderim etiketleri aracılı ile gelen verilere ulaşabilme imkanı tanır. $_GET ve $_POST süper evrensellerinin yaptığı işleri $_REQUEST süper evrenseli tek başına yapar. |
$_FILES | HTTP sunucusuna gönderilen yükleme isteği sırasında, yüklenmek istenen dosyanın verilerine ulaşabilmeyi sağlar. |
$_COOKIE | Herhangi bir kullanıcının web tarayıcısına yerleşmiş olan çerez verilerine ulaşabilmeyi sağlar. |
$_SESSION | Herhangi bir kullanıcı için oturum tanımlama ve tanımlanmış oturum verilerine ulaşmayı sağlar. |
$GLOBALS
$GLOBALS ön tanımlı değişkeni global bir alanda oluşturulmuş bir değişkene yerel bir alandan erişmeyi sağlar. Aynı zamanda yerel bir alanda tanımlanmış bir değişkene de global alandan erişime olana tanır.
Yerel alanda tanımlanmış bir değişkene global alandan erişim sağlamak için yerel alanda $GLOBALS ön tanımlı değişkeni kullanılarak değişken tanımlanmalıdır.
function yerel_alan_fonksiyonu(){
$GLOBALS["DegiskenAdi"] = "Değişkenin Değeri";
}
yerel_alan_fonksiyonu();
echo $DegiskenAdi;
yukarıdaki örneğin farklı bir kullanımı da aşağıdaki gibidir.
function yerel_alan_fonksiyonu(){
$GLOBALS["DegiskenAdi"] = "Değişkenin Değeri";
}
yerel_alan_fonksiyonu();
echo $GLOBALS["DegiskenAdi"];
Bunlar yerelde alanda oluşturulmuş değişkenlerin global alanda kullanımına örnekti. Örneklerden görebildiğiniz gibi yerel alanda $GLOBALS["DegiskenAdi"] olarak tanımladıktan sonra global alanda $GLOBALS["DegiskenAdi"] ya da $DegiskenAdi olarak erişebiliyorum.
Global alandaki bir değişkene yerel alandan erişebilmek için $GLOBALS ön tanımlı değişkenli versiyonunu kullanmak zorundayım.
$adiSoyadi = "Muhammet ŞAFAK";
function yerel_alan_fonksiyonu(){
echo $GLOBALS["adiSoyadi"];
}
yerel_alan_fonksiyonu();
$_SERVER
PHP'de ön tanımlı değişkenler arasında en geniş işleve sahip olanı $_SERVER süper evrenselidir. Sunucu hakkında bir çok bilgiye bu ön tanımlı değişken ile erişebiliriz. Hemen her projede kendine bir kullanım yeri bulur. Yine de sunucunun işletim sistemi ve yapılandırılmasına bağlı olarak her sunucu bunları sunmak zorunda değildir.
Aşağıdaki tabloda $_SERVER ön tanımlı değişkeni ile erişebileceklerinizin bir listesi bulunuyor. Bu listeyi hemen ezberlemek zorunda değilsiniz. Zamanla kullandıkça zaten farkında olmadan ezberleyeceksiniz. :)
| INDEX | Açıklama |
| PHP_SELF | Çalıştırılan betiğin, belge kök dizinine göreli dosya adını verir. /path/self.php gibi. |
| GATEWAY_INTERFACE | Sunucunun desteklediği CGI belirtiminin sürümünü içerir; 'CGI/1.1' gibi. |
| SERVER_ADDR | Betiğin çalıştığı sunucunun IP adresini döndürür. |
| SERVER_NAME | Betiğin çalıştığı sunucunun adını döndürür. |
| SERVER_SOFTWARE | Sunucu kimlik dizgesi, isteklere verilen cevap başlıklarının içinde verilir. |
| SERVER_PROTOCOL | Sayfa isteğinin yapıldığı protokolün ismi ve sürümünü döndürür; HTTP/1.1 gibi |
| REQUEST_METHOD | Sayfaya erişim için kullanılan istek yöntemini döndürür; GET, HEAD, POST, PUT gibi |
| REQUEST_TIME | İsteğin başlangıç zamanını döndürür |
| REQUEST_TIME_FLOAT | İsteğin başlangıç zamanını microtime cinsinden döndürür. |
| QUERY_STRING | Sorgu dizgesi, sayfaya erişirken kullanılabilir. |
| DOCUMET_ROOT | Geçerli betiğin altında çalıştığı belge kök dizinidir. |
| HTTP_ACCEPT | Geçerli isteğin Accept: başlığının içeriğidir. |
| HTTP_ACCEPT_CHARSET | Geçerli isteğin Accept-Charset: başlığının içeriğidir. iso-8859-9, utf-8 gibi. |
| HTTP_ACCEPT_ENCODING | Geçerli isteğin Accept-Encoding: başlığının içeriğidir. gzip gibi. |
| HTTP_ACCEPT_LANGUAGE | Geçerli isteğin Accept-Language: başlığının içeriğidir. tr, en gibi |
| HTTP_CONNECTION | Geçerli isteğin Connection: başlığının içeriğidir. Keep-Alive gibi |
| HTTP_HOST | Geçerli isteğin Host: başlığının içeriğidir. |
| HTTP_REFERER | Varsa kullanıcının tarayıcısını geçerli sayfaya gönderen sayfanın URL adresidir. Bu kullanıcı tarayıcısı tarafından belirtilir. Her tarayıcı bunu belirtmez ve bazıları HTTP_REFERER değiştirmeyi bir özellik olarak sunar. Yani bu bilgiye güvenilmez. |
| HTTP_USER_AGENT | Geçerli isteğin User-Agent: başlığının içeriğidir. Bu sayfaya erişen tarayıcıyı ifade eden bir dizgedir. Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 gibi bir yapısı vardır. |
| HTTPS | Eğer betik HTTPS protokolü ile sorgulanmışsa boş olmayan bir değer atanır. |
| REMOTE_ADDR | Geçerli sayfayı görüntüleyen kullanıcının IP adresidir. |
| REMOTE_HOST | Geçerli sayfayı görüntüleyen kullanıcının sunucu adıdır. Kullanıcının REMOTE_ADDR değerinden ters dns sorgusuyla elde edilir. |
| REMOTE_PORT | Kullanıcının makinesinin HTTP sunucusu ile haberleşmek için kullandığı porttur. |
| REMOTE_USER | Kimliği kanıtlanmış kullanıcı. |
| REDIRECT_REMOTE_USER | İstek dahilen yönlendirilmişse kimliği kanıtlanmış kullanıcı. |
| SCRIPT_FILENAME | Geçerli betiğin mutlak yoludur. |
| SERVER_ADMIN | HTTP sunucusu ayar dosyasındaki SERVER_ADMIN (Apache için) yönergesine verilen değerdir. Eğer betik bir sanal konak üzerinde çalışıyorsa, o sanal konak için için tanımlanmış değer olur. |
| SERVER_PORT | Haberleşme için HTTP sunucusu tarafından kullanılan porttur. Ön tanımlı kurulumlar için değeri '80'dir; örneğin SSL kullanımında bunu güvenli HTTP portu olarak ne tanımladıysanız ona değiştirebilirsiniz. |
| SERVER_SIGNATURE | Eğer etkinse, sunucu tarafından üretilen sayfalara eklenen, sunucu sürümünü ve sanal konak adını içeren dizgidir. |
| PATH_TRANSLATED | Sunucu gerekli sanaldan gerçeğe dönüşümleri yaptıktan sonra geçerli betiğin dosya sistemini (belge kökü değil) temel alan yoludur. |
| SCRIPT_NAME | Geçerli betiğin yolunu içerir. Kendi kendilerini göstermesi gereken sayfalar için kullanışlıdırlar. |
| REQUEST_URI | Sayfaya erişim için belirtilen URI; /index.html gibi |
| PHP_AUTH_DIGEST | Özetli HTTP kimlik doğrulaması yapılırken bu değişken istemci tarafından gönderilen 'Authorization' başlığında belirtilir (böylece siz de uygun geçerlilik denetimini yapmak için bunu kullanabilirsiniz). |
| PHP_AUTH_USER | HTTP kimlik doğrulaması yapılırken bu değişkene kullanıcı tarafından sağlanan kullanıcı adı atanır. |
| PHP_AUTH_PW | HTTP kimlik doğrulaması yapılırken bu değişkene kullanıcı tarafından sağlanan parola atanır. |
| AUTH_TYPE | Apache altında modül olarak HTTP kimlik doğrulaması yapılırken bu değişkene kullanılan kimlik doğrulama türü atanır. |
| PATH_INFO | İstemci tarafından sağlanan dosya yolunu içerir, dosya isiminin ardından bir sorgu dizgesi olsa bile bu gösterilmez. Örneğin betik http://lvh.me/php/info.php/some/stuff?foo=bar adresinde çalışıyorsa; /some/stuff döndürülür. |
| ORIG_PATH_INFO | PHP tarafından işlenmeden önceki özgün PATH_INFO |
Örnek kullanımı şu şekildedir;
echo $_SERVER["PATH_INFO"];
$_GET
URL üzerinden geçerli betiğe aktarılan değişkenlerden oluşan bir ilişkisel dizi. Dizinin yalnızca GET isteklerinden değil, bir sorgu dizesindeki tüm isteklerden oluşturulduğunu unutmayın.
<?php
echo "Merhaba " . $_GET['isim'] . "!";
?>
yukarıdaki gibi bir PHP dosyası oluşturup http://localhost/index.php?isim=Muhammet adresinden çağırdığımızı varsayarsak aşağıdaki çıktıyı üretecektir.
Merhaba Muhammet!
Bu işlem genellikle GET metodu ile gönderilmiş form verilerine erişim için kullanılır.
$_POST
HTTP isteklerinde Content-Type olarak multipart/form-data veya application/x-www-form-urlencoded kullandığında HTTP POST yöntemi kullanılarak geçerli betiğe aktarılan ilişkisel değişken dizisidir.
Bir örnek oluşturabilmek için aşağıdaki HTML kodları ile basit bir form oluşturalım. Ve örneğin kullanıcının adını girmesini isteyelim.
<form method="POST" action="gonder.php">
<input type="text" name="adiniz" placeholder="Adınızı girin!" />
<input type="submit" value="Gönder" />
</form>
şimdi gonder.php diye bir dosya oluşturup aşağıdaki kodları giriyoruz. (Dosya adı form etiketi içerisinde action tanımlanmasına gonder.php yazdığımız için bu şekilde.)
<?php
echo "Hoşgeldin, " . $_POST['adiniz'];
?>
Bu işlem genellikle POST metodu ile gönderilmiş form verilerine erişim için kullanılır.
$_REQUEST
$_REQUEST ön tanımlı değişkeni hem $_POST hem $_GET hem de $_COOKIE ön tanımlı değişkenleri gibi çalışır. Genellikle kullanılması tavsiye edilmez ancak bazı durumlarda işe yarar olabilir.
Örneğin bir arama sayfasında kullanıcıdan alacağınız veriyle arama işlemini yapacaksınız. Kullanıcı bunu Post ya da Get metodu ile gönderebilsin istiyorsunuz. İşte burada ihtiyacınız olan ön tanımlı değişken $_REQUEST oluyor.
Kullanım şekli ise $_GET ve $_POST ile birebir aynıdır.
echo $_REQUEST['anahtar_adi'];
$_FILES
En kısa tanımı ile HTTP üzerinden POST yöntemi kullanılarak geçerli betiğe yüklenmek istenen dosya ya da öğeye ait bilgilerin tutulduğu bir dizidir.
Kullanıcının sisteme resim, döküman vs gibi dosyalar yüklemesi gerektiği durumlarda kullanılır.
<form enctype="multipart/form-data" action="yukle.php" method="post">
<input type="file" name="inputName" />
<input type="submit" value="Yükle" />
</form>
Yukarıdaki form kullanıcının seçtiği bir dosyayı inputName adında PHP betiğimize yani sunucumuza gönderecektir.
print_r($_FILES['inputName']);
Yukarıdaki komut ile gönderilen dosyaya ait bilgileri bir dizi şekilde görebilirsiniz. Bu diziye ait INDEX'leri aşağıdaki tabloda görebilirsiniz.
| INDEX | Açıklama | Örnek |
| name | İstemcinin makinesindeki dosyanın asıl adıdır. | $_FILES['inputName']['name'] |
| type | Eğer tarayıcı bu bilgiyi sağladıysa dosyanın MIME türüdür. image/gif gibi ancak bu değer PHP tarafından kontrol edilmez. Kullanıcı farklı bir dosyayının MIME türünü farklı bir dosyaya tanımlayabilir. Yani buna güvenmemelisiniz. | $_FILES['inputName']['type'] |
| size | Yüklenen dosyanın bayt cinsinden boyutudur. | $_FILES['inputName']['size'] |
| tmp_name | Yüklenen dosyanın sunucuda saklandığı sıradaki geçici dosya adıdır. | $_FILES['inputName']['tmp_name'] |
| error | Dosyanın yüklenmesinde bir hata oluştuysa, hata kodunu verir. | $_FILES['inputName']['error'] |
PHP ile dosya yükleme işlemleri daha sonra farklı bir başlık altında detaylandırabilirim.
$_COOKIE
Geçerli betiğe HTTP Çerezleri üzerinden aktarılan bütünleşik bir değişken dizisidir.
$_COOKIE['cerezAdi'];
$_SESSION
Geçerli betikte kullanılabilecek oturum değişkenlerini içeren bir ilişkisel dizidir.
$_SESSION['oturumAdi'];
Yazar
Muhammet Şafak
Yazılım Mühendisi & Full-Stack Geliştirici. PHP, Laravel ve modern web teknolojileri üzerine yazıyor.
HakkımdaYorumlar 0
Henüz yorum yapılmamış.
İlk yorumu siz yapın!
Yorum Yaz
Yorumunuz moderasyon sonrası yayınlanacaktır.