Задать вопрос
@HAbRAhabp

WordPress экранирует кавычки, как убрать?

WordPress экранирует все кавычки, переданные в GET / POST запросе. Немного поразмыслив, вспомнил, что есть такая функция, как magic_quotes_gpc. Проверил php.ini, запустил функцию в скрипте без подключенного вордпресса, ничего не экранируется. Полез смотреть первое, что попалось на глаза, нашел в wp-settings.php такое:
// Add magic quotes and set up $_REQUEST ( $_GET + $_POST )
wp_magic_quotes();

Тоесть он всем массивам _POST и _GET отдает слэши. Убирать этот костыль не хочется, stripcslashes использоваться не может, т.к. иногда передаются подобные строчки:
$("body").html("<div class=\"container_main\">body</div>");

и js код попросту становится невалидным. Можно ли как то получить данные в исходном виде или в определенном файле отключить эту функцию?
  • Вопрос задан
  • 1857 просмотров
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
cesnokov
@cesnokov
<head>&nbsp;</head>
Зная, где, что и как вы можете получить из _GET, напишите свой фильтр, например так:
Пусть входная строка будет такой:
_GET['value'] = '$("body").html("<div class=\"container_main\">body</div>");';

Можно вначале заменить неугодные Вам символы \" на \', а потом прогнать строку через stripslashes_deep(). Должно получиться:
$("body").html("<div class='container_main'>body</div>");

В идеале кавычки надо менять на их символы &quot;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽