-1

我有这个:

<?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().

4

1 回答 1

2

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

或者,也许您应该在 SE 中查看 链接,该链接是关于使用 /for 进行例外处理的htmlentities();

于 2012-12-26T02:16:41.273 回答