当 magic_quotes_gpc 设置为 off 时引号被转义
当 magic_quotes_gpc
设置为 off
时,Magento 会转义撇号。当我将 magic_quotes_gpc
设置为 on
时,Magento 停止插入斜杠。完全是倒退了。
我不能让 Magento 转义我的撇号,但我也不希望将 magic_quotes_gpc
设置为 on
因为我担心它可能会对 Magento 的其他部分产生影响我的网站(vBulletin 论坛、Wordpress 博客等)。
请注意 - Magento 并不总是这样,只是从今天开始。
编辑:将以下代码添加到我的 CMS 页面之一的布局更新 XML 后,该行为开始:
<!--<reference name="content">
<block type="catalog/product_new" name="home.catalog.product.new" alias="product_new" template="catalog/product/new.phtml" after="cms_page"><action method="addPriceBlockType"><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action></block>
<block type="reports/product_viewed" name="home.reports.product.viewed" alias="product_viewed" template="reports/home_product_viewed.phtml" after="product_new"><action method="addPriceBlockType"><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action></block>
<block type="reports/product_compared" name="home.reports.product.compared" template="reports/home_product_compared.phtml" after="product_viewed"><action method="addPriceBlockType"><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action></block>
</reference>
<reference name="right">
<action method="unsetChild"><alias>right.reports.product.viewed</alias></action>
<action method="unsetChild"><alias>right.reports.product.compared</alias></action>
</reference>-->
奇怪的行为开始后,我删除了该代码,但它没有解决问题。
Magento is escaping apostrophes when magic_quotes_gpc
is set to off
. When I set magic_quotes_gpc
to on
, Magento stops inserting slashes. It's completely backwards.
I can't have Magento escaping my apostrophes, but I also do not want to have magic_quotes_gpc
set to on
because I am concerned about the implications it might have on other parts of my site (vBulletin forum, Wordpress blog, etc.).
Just to note - Magento wasn't always behaving this way, it only started today.
EDIT: The behavior started after adding the following code to the Layout Update XML of one of my CMS pages:
<!--<reference name="content">
<block type="catalog/product_new" name="home.catalog.product.new" alias="product_new" template="catalog/product/new.phtml" after="cms_page"><action method="addPriceBlockType"><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action></block>
<block type="reports/product_viewed" name="home.reports.product.viewed" alias="product_viewed" template="reports/home_product_viewed.phtml" after="product_new"><action method="addPriceBlockType"><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action></block>
<block type="reports/product_compared" name="home.reports.product.compared" template="reports/home_product_compared.phtml" after="product_viewed"><action method="addPriceBlockType"><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action></block>
</reference>
<reference name="right">
<action method="unsetChild"><alias>right.reports.product.viewed</alias></action>
<action method="unsetChild"><alias>right.reports.product.compared</alias></action>
</reference>-->
After the weird behavior started, I removed that code, but it did not fix the problem.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
编辑:我找到了问题所在。原来Wordpress有它自己的添加斜杠的功能。从 WordPress 版本 3.2.1 开始,您可以在 /wp-includes/load.php 的第 530 行附近找到函数
wp_magic_quotes()
为了解决这个问题,我注释掉了函数中的所有内容(而不是函数本身,以防止调用未定义的函数)。它消除了转义引号的问题。我还没有进行广泛的测试,但据我了解,这可能会破坏旧的 Wordpress 插件,所以要小心。
它将从这样:
到这样:
EDIT: I figured out the problem. It turns out that Wordpress has it's own function to add in slashes. As of Wordpress version 3.2.1, you can find function
wp_magic_quotes()
around line 530 of /wp-includes/load.phpTo fix the issue, I commented out everything within the function (not the function itself, so as to prevent a call to an undefined function). It's removed the issue of escaped quotes. I haven't done extensive testing, but from what I understand, this may break older Wordpress plug-ins, so be careful.
It will go from this:
to this:
在 app/code/core/Mage/Core/functions.php 的顶部有这样的内容:
只需将此文件复制到本地(app/code/local/Mage/Core/functions.php)即可。 php)并注释掉 if 语句,以便它始终运行。
这是必需的,因为 WordPress 会检查魔术引号是否被禁用,如果是,它无论如何都会运行魔术引号。关于是否应该发生这种情况有很长的讨论,但共识是删除该功能可能会在无法解决该问题的旧插件或主题中打开安全漏洞,因此不要指望 WordPress 会很快删除该功能。
At the top of app/code/core/Mage/Core/functions.php there is this:
Just copy this file to local (app/code/local/Mage/Core/functions.php) and comment out the if statement so it will always run.
This is required because WordPress checks if magic quotes is disabled, and if it is it runs magic quotes anyway. There are lengthy discussions on whether or not this should happen but the consensus is removing that functionality could open security holes in older plugins or themes that do not work around it, so don't expect WordPress to remove that functionality any time soon.