Zend-форма и Zend-фильтр HtmlEntities - PullRequest
2 голосов
/ 12 января 2010

У меня есть регистрационная форма с несколькими полями. Один из них выглядит так:

        $first_name = new Zend_Form_Element_Text('first_name');
        $first_name ->setLabel("First name")
                    ->setRequired(true)
                    ->addFilter(new Zend_Filter_HtmlEntities());

Я использую ту же форму для редактирования данных пользователя. Проблема в Zend_filter_HtmlEntities. Он выполняет свою работу, когда я отправляю данные формы в базу данных, он заменяет специальные символы html их альтернативами. Однако, когда я инициализирую эту форму и присваиваю ей значения по умолчанию из записи базы данных, Zend_filter_HtmlEntities снова фильтрует эти значения, и я получаю некоторый мусор в моих полях ввода.

Например, в поле ввода имени вместо <b>Name, I get &amp;lt;b&amp;gt; Name

Это означает, что когда форма отображается со значениями по умолчанию, фильтры элементов применяются снова и <потому что & lt; (</p>

Есть ли элегантное решение этой проблемы, кроме переформатирования данных перед их передачей в форму?

1 Ответ

2 голосов
/ 12 января 2010

Добавление фильтра Zend_Filter_HtmlEntities, я бы полностью избежал. Вместо этого я бы беспокоился об экранировании html-объектов только при отображении данных обратно пользователю.

...