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

Kev*_*rke 6 forms url escaping http

我觉得这个问题非常愚蠢,但是我正在做一个用户输入一些输入的表单,有时输入是百分号,比如说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
Run Code Online (Sandbox Code Playgroud)

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

&growth=5%25
Run Code Online (Sandbox Code Playgroud)

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

编辑:我尝试从页面中删除所有的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
Run Code Online (Sandbox Code Playgroud)

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

Mic*_*yor 10

查看URL ENCODING.url中的"%"字符表示特殊内容.

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

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

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