在PHP GET请求中是否存在太多变量?

时间:2011-02-04 10:07:12

标签: php forms get

我正在用PHP编写一个基本上是模板设计器的Web应用程序。用户在表单中输入他们的测量值,颜色等,并在提交时看到预览。所有已定义的变量都显示在网址中(例如http://mysite.com/template.php?height=100&width=300&color=blue ...)

我有大约100个这样的变量,所以不用说结果URL会变得非常混乱。并不是说有什么问题,但我是PHP的新手所以我只是想知道是否有更好的方法来做到这一点?它是否会不必要地减慢浏览器的速度以使100个变量通过GET请求?

6 个答案:

答案 0 :(得分:5)

  

PHP GET请求中是否存在太多变量?

不是直接的,而是一个URL can be only 2083 characters long in Internet Explorer(绝对版本不超过7,不是100%肯定8,不知道9)。旧版Opera(我认为4kb)和一些Web服务器存在类似的限制。

根据您的使用情况,请考虑将数据存储在会话变量中。

答案 1 :(得分:4)

不,没有最大数量的变量,但是URL的最大长度。参见:

What is apache's maximum url length?

答案 2 :(得分:4)

问题在于某些浏览器仅支持固定的URL查询大小。

你不能把它作为POST发送吗?

查看IE,例如:

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

一些较旧的客户端或代理实现仅支持最多255个字节......

答案 3 :(得分:4)

嗯,理论上没有,实际上有些浏览器会对URL的长度设置限制。

Stackoverflow - related thread

答案 4 :(得分:2)

我看到的唯一问题(我碰到过一次)是在某些浏览器中存在最大长度限制:http://en.wikipedia.org/wiki/Query_string#Compatibility_issues

答案 5 :(得分:2)

GET procotol不是为处理此类请求而设计的,因为它们旨在获取静态内容。

您的内容取决于某些选项,POST在任何情况下都会更有效。

顺便说一句,您必须知道GET协议限制了URL长度,它实际上取决于浏览器。