Тут два момента.
Первый: сохранение комментария. Если комментарии хранятся в реляционной базе, то надо защититься от SQL-инъекции. Для этого нужен mysql_real_escape_string, а лучше механизм placeholder-ов. htmlspecialchars на этом этапе не нужен, иначе будет уже не тот коммент, который добавлялся. Если комментарии хранятся в файлах, то там уже возможно заморочки с разделителями записей могут быть. Если в какой-нибудь объектно-ориентированной базе, вроде mongodb, то проблем вообще никаких нет. Комментарий сохраняется как есть.
Второй момент: вывод комментария на страницу. Т.к. комментарий выводится в HTML, то все символы, специфичные для HTML нужно экранировать. Вот на этом этапе нужен htmlspecialchars.
Если бы комментарий выводился в другом формате, json например, то htmlspecialchars, вобщем-то, не нужен.
Вобщем главное понять, для чего делается то или иное действие.
|