PHP Global Değişkenler (Superglobals)

PHP'nin güçlü superglobal değişkenlerini keşfedin! $GLOBALS, $_SERVER, $_POST, $_GET ve daha fazlasıyla web projelerinizi şekillendirin. Bu özel değişkenler, PHP kodlarınızın her yerinden erişilebilir ve web geliştirmeyi daha da kolaylaştırır. Detayları keşfedin ve projelerinizi daha esnek ve verimli hale getirin! Tüm detayları bu konumuzda ele alıyoruz.

PHP Global Değişkenler (Superglobals)

PHP Global Değişkenler (Superglobals)

PHP'de önceden tanımlanmış bazı değişkenler "süper küresel "dir, yani kapsamdan bağımsız olarak her zaman erişilebilirdirler - ve özel bir şey yapmanıza gerek kalmadan herhangi bir işlevden, sınıftan veya dosyadan bunlara erişebilirsiniz.

PHP süper küresel değişkenleri şunlardır:

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

PHP $GLOBALS

$GLOBALS, PHP betiğinin herhangi bir yerinden (işlevler veya yöntemler içinden de) küresel değişkenlere erişmek için kullanılan bir PHP süper küresel değişkenidir.

PHP tüm global değişkenleri $GLOBALS[index] adlı bir dizide saklar. Dizin değişkenin adını tutar.

Aşağıdaki örnekte $GLOBALS süper küresel değişkeninin nasıl kullanılacağı gösterilmektedir:

<?php
$x = 75;
$y = 25;
 
function addition() {
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
 
addition();
echo $z;
?>

PHP $_SERVER

$_SERVER, başlıklar, yollar ve betik konumları hakkında bilgi tutan bir PHP süper global değişkenidir.

Aşağıdaki örnek $_SERVER içindeki bazı öğelerin nasıl kullanılacağını göstermektedir:

<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

Aşağıdaki tablo $_SERVER içine girebilecek en önemli öğeleri listelemektedir:

Element/Kod Açıklama
$_SERVER['PHP_SELF'] Şu anki çalışan betiğin dosya adını döndürür.
$_SERVER['GATEWAY_INTERFACE'] Sunucunun kullandığı Common Gateway Interface (CGI) sürümünü döndürür.
$_SERVER['SERVER_ADDR'] Ana sunucunun IP adresini döndürür.
$_SERVER['SERVER_NAME'] Ana sunucunun adını (örneğin www.onurkul.com.tr) döndürür.
$_SERVER['SERVER_SOFTWARE'] Sunucunun tanımlama dizesini (örneğin Apache/2.2.24) döndürür.
$_SERVER['SERVER_PROTOCOL'] Bilgi protokolünün adını ve sürümünü (örneğin HTTP/1.1) döndürür.
$_SERVER['REQUEST_METHOD'] Sayfaya erişim için kullanılan istek yöntemini (örneğin POST) döndürür.
$_SERVER['REQUEST_TIME'] İsteğin başlangıç zaman damgasını döndürür (örneğin 1377687496).
$_SERVER['QUERY_STRING'] Sayfa bir sorgu dizesi üzerinden erişiliyorsa sorgu dizesini döndürür.
$_SERVER['HTTP_ACCEPT'] Geçerli isteğin "Accept" başlığını döndürür.
$_SERVER['HTTP_ACCEPT_CHARSET'] Geçerli isteğin "Accept-Charset" başlığını döndürür (örneğin utf-8, ISO-8859-1).
$_SERVER['HTTP_HOST'] Geçerli isteğin "Host" başlığını döndürür.
$_SERVER['HTTP_REFERER'] Geçerli sayfanın tam URL'sini döndürür (tüm kullanıcı arayüzleri tarafından desteklenmediği için güvenilir değildir).
$_SERVER['HTTPS'] Betik, güvenli bir HTTP protokolü üzerinden mi sorgulandı?
$_SERVER['REMOTE_ADDR'] Kullanıcının şu anki sayfayı görüntülediği IP adresini döndürür.
$_SERVER['REMOTE_HOST'] Kullanıcının sayfayı görüntülediği Ana bilgisayar adını döndürür.
$_SERVER['REMOTE_PORT'] Kullanıcının web sunucusu ile iletişim kurmak için kullandığı makinesindeki bağlantı noktasını döndürür.
$_SERVER['SCRIPT_FILENAME'] Şu anki çalışan betiğin mutlak dosya yolunu döndürür.
$_SERVER['SERVER_ADMIN'] Web sunucusu yapılandırma dosyasındaki SERVER_ADMIN yönergesine verilen değeri döndürür (betiğiniz bir sanal anahtar üzerinde çalışıyorsa, bu sanal anahtar için tanımlanan değeri döndürecektir). (örneğin iletisim@onurkul.com.tr)
$_SERVER['SERVER_PORT'] Web sunucusunun iletişim için kullanmakta olduğu makinedeki bağlantı noktasını döndürür (örneğin 80).
$_SERVER['SERVER_SIGNATURE'] Sunucu tarafından üretilen sayfalara eklenen sunucu sürümünü ve sanal ana bilgisayar adını döndürür.
$_SERVER['PATH_TRANSLATED'] Şu anki betiğin dosya sistemi tabanlı yolunu döndürür.
$_SERVER['SCRIPT_NAME'] Şu anki betiğin yolunu döndürür.
$_SERVER['SCRIPT_URI'] Şu anki sayfanın URI'sini döndürür.

PHP $_REQUEST

PHP $_REQUEST, bir HTML formu gönderildikten sonra veri toplamak için kullanılan bir PHP süper global değişkenidir.

Aşağıdaki örnekte bir giriş alanı ve bir gönder düğmesi olan bir form gösterilmektedir. Bir kullanıcı "Gönder" düğmesine tıklayarak verileri gönderdiğinde, form verileri <form> etiketinin action niteliğinde belirtilen dosyaya gönderilir. Bu örnekte, form verilerini işlemek için bu dosyanın kendisine işaret ediyoruz. Form verilerini işlemek için başka bir PHP dosyası kullanmak isterseniz, bunu istediğiniz dosya adıyla değiştirin. Ardından, girdi alanının değerini toplamak için $_REQUEST süper global değişkenini kullanabiliriz:

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  Name: <input type="text" name="fname">
  <input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  // giriş alanının değerini toplar
  $name = $_REQUEST['fname'];
  if (empty($name)) {
    echo "İsim alanı boş";
  } else {
    echo $name;
  }
}
?>

</body>
</html>

PHP $_POST

PHP $_POST, bir HTML formunu method="post" ile gönderdikten sonra form verilerini toplamak için kullanılan bir PHP süper global değişkenidir. $_POST değişkenleri aktarmak için de yaygın olarak kullanılır.

Aşağıdaki örnekte bir giriş alanı ve bir gönder düğmesi olan bir form gösterilmektedir. Bir kullanıcı "Submit" düğmesine tıklayarak verileri gönderdiğinde, form verileri <form> etiketinin action niteliğinde belirtilen dosyaya gönderilir. Bu örnekte, form verilerini işlemek için dosyanın kendisine işaret ediyoruz. Form verilerini işlemek için başka bir PHP dosyası kullanmak isterseniz, bunu istediğiniz dosya adıyla değiştirin. Ardından, girdi alanının değerini toplamak için süper global değişken $_POST'u kullanabiliriz:

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  Name: <input type="text" name="fname">
  <input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  // giriş alanının değerini toplar
  $name = $_POST['fname'];
  if (empty($name)) {
    echo "İsim alanı boş";
  } else {
    echo $name;
  }
}
?>

</body>
</html>

PHP $_GET

PHP $_GET, bir HTML formunu method="get" ile gönderdikten sonra form verilerini toplamak için kullanılan bir PHP süper global değişkenidir.

$_GET ayrıca URL'de gönderilen verileri de toplayabilir.

Parametreli bir köprü içeren bir HTML sayfamız olduğunu varsayalım:

<html>
<body>

<a href="test_get.php?subject=PHP&web=onurkul.com.tr">Test $GET</a>

</body>
</html>

Bir kullanıcı "Test $GET" bağlantısına tıkladığında, "subject" ve "web" parametreleri "test_get.php "ye gönderilir ve daha sonra $_GET ile "test_get.php "deki değerlerine erişebilirsiniz.

Aşağıdaki örnek "test_get.php" içindeki kodu göstermektedir:

<html>
<body>

<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>

</body>
</html>

Tepkiniz Nedir?

like

dislike

love

funny

angry

sad

wow