Почему формы HTML преобразуют "&" в "&"? - PullRequest
0 голосов
/ 30 января 2019

Я пытался выяснить, почему мои тщательно подготовленные фразы "&" превращаются в простые фразы "&".Я знал, что это происходит, но я не знал, происходило ли это, когда они отправлялись как часть SQL-запроса или где-то еще.Это довольно сложно, так как вы должны просмотреть исходный код, чтобы увидеть разницу!

В конце концов я обнаружил, где это происходит - в отправляемой HTML-форме (action = "post").У меня был

палки и камни

Я обнаружил, что при отправке формы значение было изменено на «палки и камни», в результате чего, когда значение было отправлено в запросе к базе данных, ему не удалосьнайти какие-либо результаты.

Я провел дальнейшие эксперименты и обнаружил, что это происходит с текстовыми и скрытыми вводами.

Мой вопрос: ПОЧЕМУ ?????Это выглядит особенно глупо.

1 Ответ

0 голосов
/ 30 января 2019

Последовательности побега следует интерпретировать, не зная намерений автора.Если бы я хотел получить значение типа Foo " Bar, я бы не сказал value="Foo " Bar", потому что кавычки не совпадали.Вместо этого я должен был бы использовать value="Foo " Bar".Но что, если я буквально хочу Foo " Bar?Вот тут и приходит &. Но чтобы избежать двусмысленности, система всегда должна переводить escape-последовательности.Поэтому, если вам нужен литерал &, вы должны быть откровенны в этом, например, sticks & stones.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...