在首字母和姓氏的帐户表单字段或用户注册页面表单字段中,当我放置以下JS代码时:
<script>alert("Here")</script>
保存并在页面加载时运行。这很奇怪,因为我检查了模板文件并且值被转义如下:
<?php echo $this->escapeHtml($this->getObject()->getFirstname()) ?>
我还通过更改字段标签来确认我是否在正确的模板文件中。 我已经阅读了以下问题,并试图使用它们,但没有为我工作。
https://magento.stackexchange.com/questions/569/how-to-escape-output-data
关于观察者方法,它可以工作,但是当我尝试登录magento admin时,我不能,但是当我移除观察者时,我可以再次登录。
查看附带的两个截图。
请帮我解决这个问题。
谢谢
答案 0 :(得分:0)
我创建了一个观察者。对于管理员和前端的登录表单(可能是其他一些表单),用户名和密码的表单字段格式如下:
<input type="text" id="username" name="login[username]" value="" class="required-entry input-text">
<input type="password" id="login" name="login[password]" class="required-entry input-text" value="">
要解决此问题,我已在observer中修改了代码,如下所示:
public function sanitizeParams($observer)
{
if(!Mage::app()->getStore()->isAdmin())
{
$post = Mage::app()->getRequest()->getParams();
foreach($post as $pkey => $pvalue)
{
if(is_array($post[$pkey]))
{
foreach($post[$pkey] as $key => $value)
{
$post[$pkey][$key] = filter_var($value, FILTER_SANITIZE_SPECIAL_CHARS);
}
}
else
{
$post[$pkey] = filter_var($pvalue, FILTER_SANITIZE_SPECIAL_CHARS);
}
}
$_POST = $post;
}
}
它解决了我的问题,现在工作正常。
感谢。