我是否正确理解,我需要像这样逃避视线:
<div id="search-box">
<?php $escaper = new Zend\Escaper\Escaper('utf-8'); ?>
<input type="text" placeholder="<?php echo $escaper->escapeHtml($this->languageText('TEXT_SEARCH_OUR_SITE',"Search Our Site"));
?>" name="query" id="query" />
<div class="search-box-bk"></div>
</div>
如何在控制器中正确过滤或验证此行:
$this->view->phrase = $this->getRequest()->getParam('phrase','');
答案 0 :(得分:1)
如何正确地转义某些内容取决于上下文。在您的示例中,变量正在HTML属性中输出,因此您应该使用escapeHtmlAttr
:
<input type="text" placeholder="<?php echo $escaper->escapeHtmlAttr($this->languageText('TEXT_SEARCH_OUR_SITE',"Search Our Site"));
?>" name="query" id="query" />
有list of escape functions in the overview of the component。
至于你需要在控制器中做什么,答案是:可能没什么,但这取决于你将使用“短语”。