SORU
17 Ocak 2012, Salı


PHP "://php giriş" vs $_POST

Ajax ile JQuery istekleri etkileşim yöntemi php://input $_POST yerine kullanmaya yönelik olmuştur. Anlamıyorum ne bu vs $_POST $_GET küresel yöntemini kullanmanın yararları.

CEVAP
17 Ocak 2012, Salı


Nedeni php://input istek HTTP başlıkları, içerik türü ne olursa olsun sonuçta ham verileri döndürür.

PHP superglobal* *7, sadecegerekiyorduya veri sarın

  • application/x-www-form-urlencoded (basit standart içerik türü-mesaj formu)
  • multipart/form-data-kodlanmış (genelde dosya yükleme için kullanılır)

Bu must be supported by user agents sadece içerik türleri vardır çünkü. Sunucu ve PHP, geleneksel olarak, herhangi bir diğer içerik türü bulamaz anlamına gelmez) almak için beklemeyin.

Sadece iyi bir HTML YAZI eğer form istek, bu gibi görünür:

POST /page.php HTTP/1.1

key1=value1&key2=value2&key3=value3

Ama eğer çalışma ile Ajax bir sürü, bu probaby de içerir alışverişi daha karmaşık veri türleri (string, int, bool) ve yapılarını (diziler, nesneler), bu yüzden çoğu durumda JSON olduğunu en iyi seçim. Ama JSON-yük bir istek bu gibi bir şey olacaktır:

POST /page.php HTTP/1.1

{"key1":"value1","key2":"value2","key3":"value3"}

İçeriği şimdi application/json (ya da en azından hiçbiri söz) olur, $_POST-poşetiydi PHP (henüz) işlemek için nasıl bilmiyor.

Veri hala orada, sadece sarıcı ile erişemiyorum. Gidip kendin içinfile_get_contents('php://input') raw formatı(as long as it's not multipart/form-data-encoded)sana çok ihtiyacım var.

Bu XML veri veya standart olmayan herhangi bir diğer içerik türü erişiminin nasıl da.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cekehechu

    cekehechu

    20 HAZİRAN 2006
  • Ralph Phillips

    Ralph Philli

    5 Aralık 2006
  • TechXCentral

    TechXCentral

    12 Temmuz 2011