Почему символ процента в запросе get ломает мой сайт? - PullRequest
6 голосов
/ 18 ноября 2010

Я чувствую себя довольно глупо, когда спрашиваю об этом, но я делаю форму, где пользователь вводит какой-то ввод, а иногда ввод представляет собой символ процента, скажем, 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 Страница не найдена. Когда я удаляю строку запроса пары

&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 Ответ

10 голосов
/ 18 ноября 2010

Проверить URL ENCODING .Символ «%» в URL-адресе означает нечто особенное.

Вы кодируете символ пробела '' как% 20 в URL-адресе.Вы кодируете символ процента «%» в URL-адресе% 25.

Таким образом, после того как ваш URL попадет в сценарий, ваш аргумент «рост» будет равен «5%».

Я попытался возиться с вашим URL, и кажется, что ваш скрипт дает сбой, когда он пытается проанализировать аргумент роста, и ваш веб-сайт скрывает этот сбой от вас, отправляя вас на страницу 404.Я бы опубликовал ваш код скрипта, если вам нужна дополнительная помощь.

...