Php ve http ile büyük değişkenleri geçmek?

6 Cevap php

i want to pass large variables to a PHP script on another server with http like: "example.com/get.php?data=this is quite alot data..."

Ben her zaman sunucusu (apache) cevabı alıyorum: "Request-URI Çok Büyük"

Herhangi bir bu komut için büyük değişkenler geçmek sıcak bir fikir?

6 Cevap

Veri GET için ne POST kullanarak hakkında çok uzunsa?

(Considering the limitation on POST's size is generally arround 2 MB in PHP ; depends on configuration, and can be more.)

Bazı seçenekler kesinlikle size ilgi ;-): Eğer kullanıyorsanız curl (that is if it's a PHP script on you server that does the request to another server ; else, you'll probably use a form in HTML), curl_setopt te belgelerine bir göz

Dedi gibi, gerçekten POST geçmelisiniz.

POST için ilk maksimum boyutu 2mb hakkında, ve php.ini dosyasındaki upload_max_filesize ve post_max_size ayarlayarak yapılandırılabilir.

Iyi seçim $ _POST olduğunu. Hatta değişken büyük için ise bir "yükleme simge" eklemek için AJAX kullanabilirsiniz.

POST kullanarak yerine GET deneyin? Yani, böyle bir şey:

<form name=fooForm method=POST action=http://example.com/get.php&gt; <input type="hidden" name=data value="this is quite a lot of data"> </form>

Bir gönderme düğmesi eklemek veya tetikleyen biraz böyle javascript kullanarak göndermek ya:

<a href="javascript:document.fooForm.submit()">Submit</a>

Ayrıca çerezler aracılığıyla veri geçirerek deneyebilirsiniz, onlar büyüklük 4KB'a kadar olabilir.

Kesinlikle POST kullanın.

Incidentally, this link documents maximum url lengths:
http://www.boutell.com/newfaq/misc/urllength.html

  • Tarayıcılar: + - 2000
  • Apache: + - 4000
  • IIS: + - 16000

Eğer başka bir sunucuda PHP script kaynak kodu üzerinde kontrol herhangi bir tür varsa, POST veri olabilir ve GET olmamalıdır. Ancak, bunun için yazının GET kullanmak için pratik / çok geçerli nedenleri varsa. Sonra bir ticaret off yapmak ve kullanımı GET yöntemini tutmak için çok büyük veri göndermek için yeteneği kurban gerekir.

Joeri haklı olarak işaret ve bu sınır sunucu, tarayıcı ve sunucu tarayıcıya farklılık olarak URL uzunlukları üst sınırları vardır. Ayrıca mümkün olduğunu veya farklı versiyonları aynı tarayıcı / sunucu desteği farklı bir URL max uzunlukları. Bu nedenle bir GET isteği üzerine URL kodlanmış gönderebilirsiniz veri miktarı bir sınırı vardır.