2011-03-02 69 views
-1

拉动信息时,我使用的是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> 

负载断\\\\

遗憾的前VAG问题。

+1

我喜欢这些详细的问题。认真。代码是什么? – 2011-03-02 11:49:53

+0

你不试试'addslashes()'和'stripslashes()'吗? – 2011-03-02 11:56:54

+0

它很可能是magic_quotes_gpc指令正在打开,这会增加斜杠,使您的mysql_real_escape_string翻倍。 – 2011-03-02 12:06:42

回答

-1

感谢您的回复,它与以下工作。

<?php echo htmlentities(stripslashes($head_text)); ?> 

需要它们既

+0

你不明白。您必须删除将数据添加到数据库的代码转义。 – 2011-03-02 12:42:23

1

根据手册mysql_real_escape_string

如果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; 
} 

没有必要调用stripslashes()函数的输出,如果SQL转义处理得当

0

在将数据插入数据库之前,您的数据有两次跳过两次

你必须找到造成这种情况的原因,并关闭过度逃逸。可以是magic_quotes_gpc设置。
在这种情况下,您必须在PHP配置中关闭此设置。
并添加一个代码,检查get_magic_quotes_gpc()结果并从所有超全局数组中删除斜杠。

如果魔法报价肯定是打开的,
也可能只是在您的代码中调用两次mysql_real_escape_string/addslashes。你必须搜索你的代码,并摆脱一个被称为早于另一个

相关问题