php mysql新闻错误

时间:2012-04-28 05:45:45

标签: php mysql html

我最近添加了一个使用myysql / php的新闻系统,它运行得很好,但是在添加html时会出现一些错误。

例如,如果我添加YouTube视频,则会添加/或\

我在下面的代码中如何更改以将html存储到数据库中?

这就是HTML最终看起来像:

3 个答案:

答案 0 :(得分:2)

这可能只是一些未经剥离的斜杠。在保存数据之前,您似乎正在转义斜杠(干得好!),但是当您去显示数据时,您似乎没有删除这些斜杠。回音时尝试以下内容:

echo stripslashes( $myrow['title'] );

答案 1 :(得分:1)

您很可能已启用magic quotes。  如果是这样,您应该检查这一点,并相应地stripslashes

function magic_quotes_strip($value){
    if(get_magic_quotes_gpc()){
        if(is_array($value)){
            return array_map('stripslashes',$value);
        }else{
            return stripslashes($value);
        }
    }else{
        return $value;
    }
}
//Strip all slashes from post array before handling
$_POST = magic_quotes_strip($_POST);

然后在输入之前执行正常的mysql转义,而不必担心双重转义:

$title = mysql_escape_string($_POST['title']);

备注:

PHP_SELF是一个XSS漏洞,你应该htmlentites删除或删除它只是action=""

$_SESSION[usr_name]您使用usr_name作为常量应该是$_SESSION['usr_name']

答案 2 :(得分:0)

您的代码中有一些地方无缘无故地添加了过多的斜杠 你必须找到这个地方,并删除过多的削减。

这可能是一个臭名昭着的magic_quotes_gpc ini设置。您必须关闭它,或者,如果不能,请使用上面链接中的代码在配置文件的最顶部删除这些无用的斜杠。

这可能是一些愚蠢无用的“终极清理功能”。你必须找到它并删除它。

这可能在其他地方,例如generate_wysiwyg()函数内部或任何内容。

记住:只做striplashes()只是一个丑陋的拐杖,只在一个地方纠正你的数据,让它在其他地方被破坏。