другая проблема с полосками - PullRequest
0 голосов
/ 15 августа 2011

Я не нашел реального решения для этого.Как и многие другие, сейчас я использую редактор jquery wysiwyg и сохраняю вывод в mysql.Проблема возникает, когда я снова загружаюсь в редактор и сохраняю его снова.Обратная косая черта и «отметки» увеличиваются каждый раз, когда я нажимаю «Отправить». Конечно, перед записью в БД я делаю mysql_real_escape_string().

. Я использую рекурсивные строки, но это не работает.

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);
}

Может у кого-нибудь есть идея? Thx

1 Ответ

0 голосов
/ 15 августа 2011

Я бы сказал, что у вас есть небольшая логическая ошибка, а также возможная ошибка ссылки, где у вас есть '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/

...