$_REQUEST ile hepsi
$_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
-
$_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.
-
Süper globali kaynağına eşle
- $_GET
- URL'den gelir
- $_POST
- Form gövdesinden
- $_COOKIE
- Çerezden
- $_REQUEST
- GET+POST+COOKIE
-
$_REQUEST erişimini tamamla
$id = $_REQUEST[____] ?? 0;Cevabı göster
$id = $_REQUEST['id'] ?? 0;