(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_SERVER — Sunucu ve işletme ortamı bilgisi
$_SERVER başlıklar, yollar ve betiklerin yerleri gibi bilgileri içeren bir dizidir. Bu dizideki girdiler HTTP sunucusu tarafından oluşturulur. Her HTTP sunucusu bunları sunacak diye bir garanti yoktur; sunucular bazıları ile işlem yapmayabilir veya burada listelenmeyen başkalarını sağlayabilirler. Bu değişkenlerden çoğu » CGI/1.1 Belirtimi içinde ele alınır.
Bilginize: PHP komut satırından çalıştırıldığında bu girdilerin çoğu ya kullanılamaz ya da anlamsız olur.
Aşağıda listelenen dizi elemenlarına ek olarak, PHP istek başlıklarındaki değerlerle ek elemanlar oluşturur. Bu girdilerin isimleri HTTP_
öneki ile başlar, küçük harfler büyük harfe dönüştürülür ve tirelerin yerini alt çizgiler alır. Örneğin, Accept-Language
başlığının dizideki elemanına $_SERVER['HTTP_ACCEPT_LANGUAGE']
ile erişilebilir.
'CGI/1.1'
gibi. Bilginize: Apache 2 altında,
UseCanonicalName = On
veServerName
atamaları yapılmalıdır. Aksi takdirde, bu değer istemci tarafından belirtilmiş muhtemelen sahte bir konak ismi içerebilir. Güvenliliğin önemli olduğu içeriklerde bu değere güvenmek doğru değildir.
'HTTP/1.1'
gibi; 'GET'
, 'HEAD'
, 'POST'
, 'PUT'
gibi. Bilginize:
Eğer istek yöntemi
HEAD
ise PHP betiği başlıklar gönderildikten sonra (çıktının çıktı tamponu olmadan üretilmesinden sonra anlamında) sonlandırılır.
Bilginize: HTTP sunucusu bu değişkeni oluşturmak için yapılandırılmalıdır. Bunun için, örneğin Apache'de httpd.conf içinde
HostnameLookups On
olmalıdır. Ayrıca gethostbyaddr() işlevine de bakılabilir.
Geçerli betiğin mutlak yoludur.
Bilginize:
Eğer betik file.php veya ../file.php gibi göreli bir yolla komut satırından çalıştırılırsa, $_SERVER['SCRIPT_FILENAME'] kullanıcı tarafından belirtilen göreli yolu içerir.
'80'
dir; örneğin SSL kullanımında bunu güvenli HTTP portu olarak ne tanımladıysanız ona değiştirebilirsiniz. Bilginize: Apache 2 altında, fiziksel (gerçek) portu almak için
UseCanonicalName = On
'dan başkaUseCanonicalPhysicalPort = On
da tanımlanmalıdır, aksi takdirde, bu değer sahte olabilir ve fiziksel port değerini döndürüp döndürmeyeceği belli olmaz. Güvenliğin önemli olduğu içeriklerde bu değere güvenmek doğru değildir.
Bilginize: Apache 2 kullanıcıları PATH_INFO tanımlatmak için httpd.conf içinde
AcceptPathInfo = On
yapılandırmasını kullanabilirler.
/index.html
'. /some/stuff
değerini içerecektir. Örnek 1 - $_SERVER örneği
<?php
echo $_SERVER['SERVER_NAME'];
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
www.example.com
Bilginize:
Bu bir süper küreseldir. Yani bir betiğin her yerinde geçerlidir. Değişkene işlevler ve yöntemlerin içinden erişmek için global $değişken; deyimine gerek yoktur.