我正在开发一个内容上传工具,该工具目前正在获取URL 中的html数据
(例如:"this is my <strong>content<strong>
-submit-->http://site.com/?content=this+is+my+<strong>+content+<strong>
)
我意识到这是一种糟糕的方法,我正在研究一种替代品,但我暂时需要它来为我的用户服务。
当我在我的机器(虚拟主机)上测试它时,它工作得很好,但现在我在Nexcess服务器上安装了它,它会返回"错误请求"。我想这与Nexcess设置有关吗?
以下是一个此类请求的示例。
有什么设置我可以暂时关闭吗?
很可能是因为URL太长(特别是查询字符串)。
从外观上看,您不是在张贴数据,而是在获取数据。简单地将表单从GET切换到POST可能会解决这个问题,因为POST数据的长度并不像GET数据那样受限制
如果数据在URL字符串中,则是GET而不是POST。这可能是你的问题,取决于你在页面上的解释方式。
它也可能不喜欢你有?food-name=&food-source=
。您可能没有为其中一个键定义必需的值。
编辑
我会检查所有的字符编码是否正确。但实际上,这是你想通过帖子做的事情,而不是通过获取请求。。。
第二版
当我在自己的服务器上测试这个字符串并打印出结果$_GET
数组时,我得到的是:
大堆([食品名称]=>【食物来源】=>[testingName]=>【测试来源】=>[theName]=>活着![城市]=>旧金山%20[State]=>加利福尼亚[国家]=>美国%20个州[地址]=>1972%20伦巴第%20街道%20旧金山%20加利福尼亚州[theLat]=>37.800409[theLng]=>-122.43401900000003[位置]=>活着%20Restaurant,%20Lombard%20Street,%20San%20Francisco,%20CA[状态%5B%5D]=>素食主义者[放置源]=>活动[type]=>放置)
您可能从该数组中认识到,数组中缺少许多查询字符串。在那里的某个地方,查询字符串有一个错误。不过,我的服务器没有抛出错误,它只是停止读取字符串。
HTTP协议的规范没有指定任何最大长度,实际限制由web浏览器和服务器软件施加。
超长的URL通常是一个错误。超过2000个字符的URL在最流行的web浏览器中无法工作。如果你想让你的网站为大多数互联网用户服务,就不要使用它们。
所以我想说,在你的情况下,你绝对无法保证它会起作用。它实际上取决于URL的长度、服务器类型和客户端使用的浏览器。
也许gzcompress()可以帮助你。但这将导致不允许使用字符,因此您也必须使用urlencode()。但是,您确实需要考虑不要在这里使用GET:)