2009-07-19 8 views
1

私は、HTTPのように別のサーバ上でPHPスクリプトに大きな変数を渡したい: 「example.com/get.php?data=thisは非常にたくさんのデータである...」phpとhttpで大きな変数を渡しますか?

私はいつも(サーバーを取得しますapache)レスポンス: "リクエストURIが大きすぎる"

大きな変数をそのスクリプトに渡すのに熱意がありますか?

+0

代わりにPOSTメソッドを使用することを検討しましたか? – notnoop

+0

変数の大きさはどれくらいですか? – Victor

答えて

4

データがGETには長すぎる場合、POSTの使用はどうですか?

(PHPで一般arroundの2メガバイトがPOSTのサイズに制限がされて考えると、。構成に依存し、より多くをすることができます)、それはPHPスクリプトが上だ場合

あなたがcurlを使用している場合(つまりあなたは別のサーバーにリクエストを行うサーバー、そうでなければHTMLのフォームを使用します)curl_setoptのドキュメントをご覧ください:

0

実際にPOSTに切り替える必要があります。

POSTの初期最大サイズは約2MBで、php.iniファイルにupload_max_filesizeとpost_max_sizeを設定することで設定できます。

0

最適な選択は$ _POSTです。変数が大きい場合は、AJAXを使用して「読み込みアイコン」を追加することもできます。

1

GETではなくPOSTを使用してみますか?

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

いずれに多少のようにJavaScriptを使用して送信する送信ボタンを追加またはトリガ::それは、このようなものである

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

また、クッキーを介してデータを渡してみてくださいサイズは最大4KBです。

0

の場合あなたは、他のサーバー上のPHPスクリプトのソースコードを何らかの形で制御しています。POSTデータであってGETではありません。ただし、投稿の代わりにGETを使用すると、非常に有効で実用的な理由がある場合。次に、トレードオフを行い、大量のデータを送信してGETメソッドを使用する機能を犠牲にする必要があります。

Joeriが指摘しているように、URLの長さには上限があります。この制限は、ブラウザごとに、またサーバーごとに異なる場合があります。異なるバージョンまたは同じブラウザ/サーバが異なるURLの最大長をサポートする可能性もあります。したがって、GET要求でURLにエンコードされたデータの送信には制限があります。

関連する問題