-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 構文にエラーがあります。near ' " を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

を使用して動作しmysql_real_escape_string()ますが、使用したいですhtmlentities()

4

1 に答える 1

2

mysql に送信する前に、引用を html 形式にstr_replace();変更してみませんか? または、代わりにPDOを使用して、すべてを心配する必要はありませんか???'&#39;

または、SE でこのリンクを確認する必要があります 。これは、with/for で例外を作成することに関するものhtmlentities();です。

于 2012-12-26T02:16:41.273 に答える