CodeBlanks Logo Icon CodeBlanks

$_REQUEST ile hepsi

PHP kursu · Başlangıç · Ders 98/116

$_REQUEST ile GET, POST ve cookie verilerini birlikte almayı öğrenirsin.

$_REQUEST ile hepsi

$_REQUEST süper globali, $_GET, $_POST ve $_COOKIE süper globallerini varsayılan olarak birleştirir. Böylece tek bir yerden hem URL hem form hem de çerez verisine ulaşabilirsin.

Bu birleştirme request_order php.ini ayarına bağlıdır; varsayılan 'GP'dir, yani önce GET sonra POST üzerine yazar. Çakışan anahtarlarda en son kazanan POST olur. CLI'da $_REQUEST başlangıçta boştur.

request_order ve çakışma

request_order ayarı hangi sırayla birleştirme yapılacağını belirler. Varsayılan 'GP', yani GET üzerine POST yazılır. 'GPC' ise en son çerez kazanır.

Bu yüzden aynı anahtar GET ve POST'ta varsa, $_REQUEST varsayılan ayarla POST değerini gösterir. Güvenlik açısından verinin kaynağını bilmek önemlidir; belirsizlikte $_GET veya $_POST kullanmak daha güvenlidir.

Uygulama param fonksiyonu ile güvenli erişim

param adında bir fonksiyon tanımla; ilk parametresi $key, ikincisi $default ve varsayılan değeri boş dize "". Gövdede return $_REQUEST[$key] ?? $default; yaz. Dışarıda $_REQUEST['page'] = "3"; ata. Sonra echo param('page') . "\n"; ve echo param('missing', '1') . "\n"; çağrılarını yap.

Örnek çözümü göster
function param($key, $default = "") { return $_REQUEST[$key] ?? $default; } tanımla, dışarıda $_REQUEST['page'] = "3"; ata, sonra echo param('page') . "\n"; ve echo param('missing', '1') . "\n"; yaz.
Örnek çözüm:
<?php
// param fonksiyonunu tanımla ve çağır
$_REQUEST['page'] = "3";
function param($key, $default = "") {
    return $_REQUEST[$key] ?? $default;
}
echo param('page') . "\n";
echo param('missing', '1') . "\n";

Kendini test et

  1. $_REQUEST varsayılan olarak hangi üç süper globali birleştirir?

    • $_GET + $_POST + $_FILES
    • $_GET + $_POST + $_COOKIE
    • $_GET + $_POST + $_SESSION
    • $_POST + $_COOKIE + $_ENV
    Cevabı göster

    $_GET + $_POST + $_COOKIE — Doğru. $_REQUEST, $_GET + $_POST + $_COOKIE süper globallerini birleştirir.

  2. Süper globali kaynağına eşle

    $_GET
    URL'den gelir
    $_POST
    Form gövdesinden
    $_COOKIE
    Çerezden
    $_REQUEST
    GET+POST+COOKIE
  3. $_REQUEST erişimini tamamla

    $id = $_REQUEST[____] ?? 0;
    Cevabı göster
    $id = $_REQUEST['id'] ?? 0;

Başlangıç bölümündeki tüm dersler