使用htmlentities时允许撇号

时间:2012-12-26 01:57:55

标签: php mysql

我有这个:

<?php

if( !empty($_SESSION['descr']) )
{
    $descr = htmlentities($_SESSION['descr'], ENT_QUOTES | ENT_IGNORE,'utf-8' );
    $descr = stripslashes($descr);
    echo "<textarea cols=\"50\" rows=\"10\" name=\"descr\" >".$descr."</textarea>";
}
else
{
    echo "<textarea cols=\"50\" rows=\"10\" name=\"descr\" ></textarea>"; 
}       
?>

使用--- ENT_IGNORE--工作但不安全我阅读

问题是如果用户输入撇号,则会发出错误:

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在“

附近使用正确的语法

它使用mysql_real_escape_string(),但我想使用htmlentities()

1 个答案:

答案 0 :(得分:2)

为什么不是,在将str_replace();提交到mysql之前,使用'&#39;更改为引用的html形式htmlentities();?或者使用PDO而不是一起担心它?

或许您应该查看SE中的this链接,该链接是关于使用/ {{1}}制作例外的内容吗?