Daha verimli ve daha hızlı olacaktır altındaki kodun hangi kılavuz beni lütfen.
$temp = $_REQUEST['s'];
VEYA
if (isset($_GET['s'])) {
$temp = $_GET['s'];
}
else {
$temp = $_POST['s'];
}
$_REQUEST
, by default, contains the contents of $_GET
, $_POST
ve $_COOKIE
.
Ben seçim olsaydı, ben muhtemelen $_REQUEST
kullanmak olmaz, ve ben $_GET
veya $_POST
seçsin - (depending on what my application should do {[ 4)]}: Genellikle konuşma:
$_GET
kullanmalısınız.$_POST
birisi (inserting or updating ; or deleting) verileri to uygulama bastırıyor zaman.Her iki şekilde de, performansları hakkında fazla bir fark olmaz: fark, senaryonun kalanı ne yapacağını karşılaştırıldığında, önemsiz olacaktır.
Ben açıkça $ _POST ve $ _GET kullanarak öneririm.
$ _REQUEST Kullanarak yine uygun bir site tasarımı ile gereksiz olabilir ve daha kolay CSRF / XSS saldırıları ve URL veri depolama gelen diğer sillyness açık bırakarak gibi bazı olumsuz yanları ile birlikte olmalıdır.
Hız farkı en az iki şekilde olmalıdır.
Merak etmeyin. Ama hala beri $_GET
$_REQUEST
ile güvenlik sorunları vardır (çünkü, ikinci çözümü (artı mevcut olan değişkenlerin hiçbiri için ekstra bir kontrol) kullanmanız gerekir {[(2)] }) bu dizi için tek kaynak değildir.
$_REQUEST
dün ile sorunlar hakkında bir yazı vardı, ben inanıyorum. Bana bulalım.
EDIT: Oh iyi, doğrudan değil bir yazı, ama burada yine de şu: http://kuza55.blogspot.com/2006/03/request-variable-fixation.html
GET vs. POST
1) GET ve POST bir dizi (örneğin, array (anahtar => değer, anahtar2 => value2, key3 => değer3, ...)) oluşturun de. Bu dizi anahtarları form denetimleri ve değerlerin isimleri anahtar / değer çiftleri, tutan kullanıcıdan veri girişi vardır.
2) GET ve POST $ _GET ve $ _POST olarak kabul edilir de. Ve özel bir şey yapmanıza gerek kalmadan, herhangi bir fonksiyon, sınıf veya dosyadan erişebilirsiniz - Bunlar ne olursa olsun kapsamı, her zaman erişilebilir olduğu anlamına gelir, superglobalstır.
3) $ _GET URL parametreleri ile geçerli komut geçirilen değişken bir dizidir.
4) $ _POST HTTP POST yöntemi ile geçerli komut geçirilen değişken bir dizidir.
When to use GET?
GET metodu ile bir formdan gönderilen bilgiler herkes (tüm değişken isimleri ve değerleri URL görüntülenir) görülebilir. Göndermek için de bilgi miktarına sınırları vardır GET. Sınırlama yaklaşık 2000 karakterdir. Değişkenleri URL görüntülenir Ancak, çünkü bu sayfa imi mümkündür. Bu, bazı durumlarda yararlı olabilir.
Olmayan hassas verileri göndermek için kullanılabilir GET.
Not: şifreleri ve diğer hassas bilgileri göndermek için asla kullanılmamalıdır GET!
When to use POST?
POST yöntemi ile bir form gönderilen bilgiler başkalarına görünmez (tüm isimler / değerleri HTTP istek gövdesinin içinde gömülü) ve göndermek için bilgi miktarına sınırları yoktur.
Sunucuya dosya yükleme sırasında Ayrıca POST, çok parçalı bir ikili giriş için destek gibi gelişmiş işlevleri destekler.
Değişkenleri URL görüntülenen değil çünkü Ancak, imi sayfası mümkün değildir.
Ben sadece hiç _GET ya da 'POST kullanın. Ben kontrole sahip olmak tercih.
OP kod parçası ya da HTTP yöntemi kullanılan hangi bilgileri atmak olduğunu konuda ben sevmiyorum. Ve bu bilgi giriş sıhhileştirilmesinde için önemlidir.
Örneğin, bir komut DB girilmesi gidiyor formdaki verileri kabul ederse o şekilde daha iyi kullanılması POST vardı (use GET only for idempotent actions). Komut GET yöntemi ile giriş verilerini alırsa Ama sonra (normalde) ret edilmelidir. Benim için böyle bir durum, bir işaret Birileri bir şey çalışıyor beri hata günlüğüne bir güvenlik ihlali yazılı garanti olabilir.
OP kod parçası ile, bu sanitization mümkün olmazdı.