2011-02-04 34 views
2

私は基本的にテンプレートデザイナーであるWebアプリケーションをPHPで書いています。ユーザーは、フォームに測定値や色などを入力し、送信時にプレビューを表示します。定義されたすべての変数がURLに表示されます(http://mysite.com/template.php?height=100&width=300&color=blue ...)PHP GETリクエストにあまりにも多くの変数がありますか?

このような変数は約100個ありますので、結果として得られるURLがかなり乱雑になることがあります。それに何か悪いことはありませんが、私はPHPの初心者ですので、これを行うより良い方法があるかどうか疑問に思っていましたか?ブラウザがGETリクエストを通過する100の変数を不必要に減速させますか?

+0

ブラウザの速度が低下しましたか? –

+0

私はちょうどそれが後で私の顔の中で爆破するつもりはないことを確認したい。 –

答えて

4

をそれに伴う問題は、特定のブラウザでのみ固定されたURLのクエリサイズをサポートしていることです。

代わりにPOSTとして送信できませんか?

例えば、IEをチェックアウト:

http://support.microsoft.com/kb/208427

をそして、いくつかの古いクライアントやプロキシ実装が唯一最大255バイトをサポート...

+0

POSTメソッドを使用すると、現在の設定を保存して後でその設定に戻す方法はありますか? GETを使用すると、URLをコピーしてから後で戻すのはかなり簡単です。 –

+0

後で使用するために保存する必要がある場合は、SESSION( '$ _SESSION')を使用できます。 – xil3

5

PHP GETリクエストにあまりにも多くの変数がありますか?

URLはcan be only 2083 characters long in Internet Explorer(間違いなくバージョン7まで、100%は約8であり、約9はわからない)。古いバージョンのOpera(私は4kbだと思う)といくつかのWebサーバーにも同様の制限があります。

ユースケースによっては、代わりにセッション変数にデータを格納することを検討してください。

+0

まあ、私の 'opera:config'は" URLの最大長 ":' 2147483647'と言っていますが、古いバージョンは実際には限られていました。 – mario

+0

IE 9プレビューでURLの制限が継続するかどうかは分かりますか? –

+0

@Andy E分かりません。インストールされていません。 2番目の外観では、すでにIE 8でリラックスしている可能性があります –

2

、静的コンテンツを取得するように設計されているからです。

内容はオプションによって異なります。いずれの場合でもPOSTはより効果的です。

ちなみに、GETプロトコルはURLの長さを制限し、実際にはブラウザに依存していることを知る必要があります。

関連する問題