0

PHPとZend MVCにDoctrine ORMを使用しています。私はmysqlデータベースを持っています。データベースに挿入すると、引用符がエスケープされます。つまり、私が入るとき

<input name="customer_name" value="Test'ed user"> ...

私のフォームに入れ、ドクトリンオブジェクトに割り当てて保存してください。

mysqlコマンドラインからデータベースを見ると、

Test\'ed user

stripslashes()これを無効にする方法はありますか、それとも各変数を呼び出す必要がありますか?

4

2 に答える 2

2

magic_quotes_gpcphp.ini を見るか実行して、有効になっていることを確認しget_magic_quotes_gpc()ます。

php.ini にアクセスできる場合は、オフにします。それ以外の場合は、を使用してスクリプト内のスラッシュを削除する必要がありますstripslashes()

于 2009-11-29T23:27:21.420 に答える
1

magic_quotes_gpcページの上部に次のようなものを追加することで、ペストを完全に回避できます。

if(get_magic_quotes_gpc()) {
    if(!function_exists('stripishlashes_all')) {
        function stripslashes_all(&$data) {
            foreach($data as &$_value) {
                if(is_array($_value)) {
                    stripslashes_all($_value);
                }
                else {
                    $_value = stripslashes($_value);
                }
            }
        }
    }
    stripslashes_all($_REQUEST);
}

完全に制御できないサーバー上でコードが実行されている場合、またはコードを配布する予定がある場合に非常に便利です。

于 2009-11-30T08:13:09.787 に答える