Написать пост

gugglegum

Детские ошибки программирования

Господа программисты-разработчики, че у вас за фигня с экранированием HTML'я? Вставляю в комментарий ссылку, в ней амперсанды дважды заменяются на амперсанд+"amp;", в итоге ссылка бьется. В другом посте мне человек написал комментарий, в котором использовал знак меньше (символ открывающегося тэга html), в результате на почту мне пришел текст полностью, а на сайте сообщение обрезалось по этому символу. Правда и в исходном коде продолжения нет, значит каким-то SafeHtml'ем обработано. Но сначала же нужно было текст заэкранировать!
2 комментария 10нравится 10избранное
Fukurokudzu
s0lo
diereq
horses
Hoorsh
MaiKL63
KondraT
fantom
kulakowka
TBC
  • iXax
    26 окт 2011 в 22:55
    Нельзя в базу писать обработанный текст. Что дали, то и храним. Всякое может быть на выходе, так что косяк на выводе, то да )
  • gugglegum
    26 окт 2011 в 23:46
    @iXax Ну и как так получилось что у вас на выводе ссылки дважды экранируются, а текст ни разу? И кстати ты не прав на счет того, что нельзя писать в базу обработанный текст -- можно, даже нужно. Каждый раз при каждом выводе текста запускать его обработку -- это нерационально, тем более что результат-то всегда один и тот же. Чтобы меньше насиловать проц, нужно хранить и то, что пришло, и обработанный заэскейпенный вариант, готовый к выплевыванию в html. При редактировании обновлять обработанный вариант. Но можно и простое кэширование результатов обработки текста использовать. Кстати, когда уже прикрутите типографику? Бесит видеть в своих сообщениях двойные минусы вместо тире.
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста, или зарегистрируйтесь.