Zend_Form,setAttrib('escape',false)无效,帮助

时间:2010-09-01 19:35:50

标签: zend-framework zend-form escaping

我正在使用Zend_Form,我希望我的一个元素不能逃脱。我有以下代码,我认为它不应该逃脱,但它确实没有失败:

在表单类中:

    $btc_name = $this->createElement('text','btc_name');
    $btc_name->setLabel('Company Name')
        ->setRequired(true)
        ->setAttrib('size',45)
        ->setAttrib('escape',false)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->addValidator('NotEmpty');

输出html:

<dt id="btc_name-label"><label for="btc_name" class="required">Company Name</label></dt> <dd id="btc_name-element"><input type="text" name="btc_name" id="btc_name" value="Joe\'s Tire Warehouse" size="45" /></dd>

您可以在此处使用$ formData的print_r和该字段的getValue查看表单:已删除链接

非常感谢任何帮助。

谢谢, Joe Chin

1 个答案:

答案 0 :(得分:1)

假设它是您所指的反斜杠,可能是PHP添加了这个,而不是Zend Framework。检查你的php.ini文件,找一个名为magic_quotes_gpc的设置 - 你希望关闭它(除非你还有其他东西依赖它)。如果您无法更改php.ini文件但使用的是mod_php,则可以在.htaccess文件中覆盖它:

php_value magic_quotes_gpc off

有关某些背景信息,请参阅http://php.net/manual/en/security.magicquotes.php,以及为什么不好。