(Genellikle iyi kod yazma) doğrudan insanlar $_POSTböyle kod ile dizi değiştirmek gördüm :
// Add some value that wasn't actually posted
$_POST['last_activity'] = time();
// Alter an existing post value
$_POST['name'] = trim($_POST['name']);
// Our pretend function
// Pass the entire $_POST array as data to work with in the function
// The function update_record() will read only the values we actually need
update_record($_POST);
// ...That sure was easier than creating a new array
// with only the $_POST values we actually need.
update_record()$ _POST'a doğrudan erişmemesi mantıklıdır , bu nedenle örneğin diğer veri dizilerini ona aktarabiliriz, ancak elbette bu tembel, kötü tasarım veya muhtemelen yanlış mı? Ancak, hala geçerli bir dizi geçiriyoruz update_record(), neden yeni bir dizi oluşturmalıyız?
Bu sorunun konusu değil, sadece bir kullanım örneği. Ancak, birçok insanın bunun $_REQUESTverilerle yapılmaması gerektiğini söylediğini duydum ve bu kötü bir uygulama. Ama neden? Yeterince zararsız görünüyor.
Örnekler:
$_GETGerçekten var olmayan bir varsayılan (veya posta) değeri ayarlama$_POSTForm gönderildikten sonra gerçekte gönderilmemiş değerler ekleme$_GETDizi değerlerini veya anahtarları komut dosyasında çok erken bir şekilde doğrudan sterilize etme veya filtreleme (yedek sanitasyon ... neden olmasın?)$_POSTBir girişi varsayılan bir değerle doldurmak için form gönderilmeden önce manuel olarak bir değer ayarlama (girdi$_POSTvarsayılan değeri için okuduğunda ; bunu yaptım)Kendi
$_SERVERdeğerlerinizi mi oluşturuyorsunuz? Tabii, hey neden olmasın?Nasıl gibi başkaları hakkında
$_COOKIEve$_SESSION? Elbette bunları doğrudan değiştirmek zorundayız değil mi? Öyleyse neden diğerleri değil?
Süper küresellerin doğrudan modifikasyonu asla yapılmamalı mı, yoksa bazı durumlarda yapılması uygun mudur?