为什么get请求中的百分号会破坏我的网站?

时间:2010-11-18 03:45:05

标签: http url forms escaping

我觉得这个问题非常愚蠢,但我正在做一个用户输入一些输入的表单,有时输入是百分号,比如说5%。当它作为GET请求的一部分传递时,如下所示:

http://kburke.org/thesis/company_x/?id=4&var1=1&ops=23255&cashflow=25000&growth=5%25&pv=100000&roe=20&profitmargin=30&roe=80&turnover=2

我收到404 Page Not Found错误。当我删除查询字符串对

&growth=5%25

页面加载正常。有人可以帮助解释问题是什么吗?

编辑:我尝试从页面中删除所有Javascript,服务器仍然没有崩溃。我也尝试在MAMP中运行它

http://localhost:8888/thesis/company_x/?id=4&var1=1&ops=23255&cashflow=25000&growth=5%25&pv=100000&roe=20&profitmargin=30&roe=80&turnover=2

它工作正常。我想知道我的服务器是否有问题。当我打开Firebug到控制台并运行页面时,我会非常简短地看到一个错误然后加载404页面 - 有没有办法可以暂停重定向以便我可以阅读错误消息?

1 个答案:

答案 0 :(得分:10)

结帐URL ENCODING。网址中的“%”字符表示特殊内容。

您将空格字符''编码为网址中的%20。 您将百分比字符'%'编码为网址中的%25。

因此,在您的网址到达脚本后,您的参数“增长”将等于“5%”。

我尝试弄乱你的网址,看来你的脚本在尝试解析增长参数时崩溃,而你的网站通过发送到404页面隐藏了你的崩溃。如果您需要更多帮助,我会发布您的脚本代码。