我正在使用funstion将数据插入数据库
所以这里是插入
的地方我正在插入此
<div class="widget" id="recentcomments"><h2>Blog</h2></div>
update_option("head-text", mysql_real_escape_string($head_text));
所以它插入到数据库中,当我保存并将其拉回时如下所示。
<input type="text" name="head-text" id="head-text" class="regular-text" value="<?php echo htmlentities($head_text, ENT_QUOTES); ?>"/>
我得到以下内容。
<div class=\\\"widget\\\" id=\\\"recentcomments\\\"><h2>Blog</h2></div>
加载\\\\
抱歉之前的阴道问题。
答案 0 :(得分:1)
首先启用magic_quotes_gpc 将stripslashes()应用于数据。 在具有的数据上使用此功能 已经被逃脱将逃脱 数据两次。
您可以使用这样的函数(如果您不想使用预准备语句)
function safe($input)
{
if (get_magic_quotes_gpc())
{
$input = stripslashes($input);
$escaped = mysql_real_escape_string($input);
}
else
{
$escaped = mysql_real_escape_string($input);
}
return $escaped;
}
如果SQL转义正确完成,则无需在输出上调用stripslashes()
答案 1 :(得分:0)
在将数据插入数据库之前,您已将数据转发两次。
你必须找到导致这种情况的原因,并关闭过多的逃逸。
可能是magic_quotes_gpc
设置
在这种情况下,您必须在PHP配置中关闭此设置
并添加一个代码,用于检查get_magic_quotes_gpc()
结果并从所有超全局数组中删除斜杠。
如果魔术引用肯定打开,
也可能只是在代码中调用两次mysql_real_escape_string / addslashes。你必须搜索你的代码并摆脱一个早于另一个
答案 2 :(得分:-1)
感谢您的回复让它与以下内容合作。
<?php echo htmlentities(stripslashes($head_text)); ?>
需要他们两个