0

これに対する本当の解決策は見つかりませんでした。他の多くの人と同じように、jquery wysiwyg エディターを使用して、出力を mysql に保存しています。この問題は、エディタにロードして再度保存すると発生します。送信を押すたびにバックスラッシュと " マークが増えます。もちろん、DB に書き込む前にmysql_real_escape_string().

strpslashes を再帰的に使用していますが、機能しません。

function decodeEscapedString($value) {
  if (get_magic_quotes_gpc()) {

     $value = is_array($value) ?
       array_map(array('self', 'decodeEscapedString'), $value) :
       stripslashes($value);

     return $value;

  } else
     return stripslashes($value);
}

誰かがアイデアを持っていますか?どうも

4

1 に答える 1

0

'self'わずかな論理エラーと、 にある参照エラーの可能性があると思いますarray_map()

これがクラスメソッドであると仮定して、次のようなことを試してください

public function filter($value)
{
    return get_magic_quotes_gpc() ? $this->clean($value) : $value;
}

protected function clean($value)
{
    return is_array($value) ? array_map(array($this, 'clean'), $value) : stripslashes($value);
}

filter()次に、メソッドを呼び出すだけです。

$value = $obj->filter($_POST['something']);

http://blog.philipbrown.id.au/2008/10/zend-framework-forms-and-magic_quotes_gpc/から適応

于 2011-08-15T00:25:58.827 に答える