我正在用PHP编写一个基本上是模板设计器的Web应用程序。用户在表单中输入他们的测量值,颜色等,并在提交时看到预览。所有已定义的变量都显示在网址中(例如http://mysite.com/template.php?height=100&width=300&color=blue ...)
我有大约100个这样的变量,所以不用说结果URL会变得非常混乱。并不是说有什么问题,但我是PHP的新手所以我只是想知道是否有更好的方法来做到这一点?它是否会不必要地减慢浏览器的速度以使100个变量通过GET请求?
答案 0 :(得分:5)
PHP GET请求中是否存在太多变量?
不是直接的,而是一个URL can be only 2083 characters long in Internet Explorer(绝对版本不超过7,不是100%肯定8,不知道9)。旧版Opera(我认为4kb)和一些Web服务器存在类似的限制。
根据您的使用情况,请考虑将数据存储在会话变量中。
答案 1 :(得分:4)
不,没有最大数量的变量,但是URL的最大长度。参见:
答案 2 :(得分:4)
问题在于某些浏览器仅支持固定的URL查询大小。
你不能把它作为POST发送吗?
查看IE,例如:
http://support.microsoft.com/kb/208427
一些较旧的客户端或代理实现仅支持最多255个字节......
答案 3 :(得分:4)
嗯,理论上没有,实际上有些浏览器会对URL的长度设置限制。
答案 4 :(得分:2)
我看到的唯一问题(我碰到过一次)是在某些浏览器中存在最大长度限制:http://en.wikipedia.org/wiki/Query_string#Compatibility_issues
答案 5 :(得分:2)
GET procotol不是为处理此类请求而设计的,因为它们旨在获取静态内容。
您的内容取决于某些选项,POST在任何情况下都会更有效。
顺便说一句,您必须知道GET协议限制了URL长度,它实际上取决于浏览器。