0

总的来说,我对 Magento 和 PHP 还是很陌生,因为我现在只使用了大约一个月(我是一名软件工程实习生)。我有一个问题,其他全职开发人员和我自己现在都很难过。

本质上,我正在编写一个更新脚本来更改一些 CMS 静态页面的内容。虽然我无法提供确切的示例,但我的脚本基本上如下所示:

$installer = $this;
$installer->startSetup();
$htmlVariable = (html for static page goes here);
$sqlQuery = 'UPDATE cms_page SET content="'.$htmlVariable.'" WHERE identifier ="pageNameHere"';

$installer->run(sqlQuery);

我发现这适用于非常简单的页面,但我发现如果我在创建的 $htmlVariable 中包含以下 p 块:

<p>
What if I can't call toll free from the country I live in? <br/> 
Feel free to send e-mail to 
to place your order and they will advise you about the extra fees.
</p>

我收到连接重置错误。如果我从“不能”中删除撇号,则查询很好。如果我在 html 变量中包含以下内容,我也会收到错误:

<a href='mailto:info@example.com'><span>info@example.com</span></a>

但是,以下也包含撇号的代码很好:

<h3 id='ca_shipping'>Page</h3>

如果 htmlVariable 超过 2000 个字符左右,也会发生同样的事情。

我很困惑,因为我从 MySQL Workbench 执行了完全相同的查询,并且它们运行良好,没有任何问题。我还在 Magento 的 .htaccess 文件中启用了错误消息,但除了 Web 浏览器中的通用连接重置错误之外,我没有收到任何错误。

我唯一的猜测是 MySQL 可能正在捕获撇号并退出以防止 SQL 注入。

我希望有人对为什么会发生这种情况有一些意见或想法,在此先感谢您。

4

0 回答 0