PHP 7.2: HTTP Form Post, что-то экранирует одинарные кавычки с обратной косой чертой. Магические цитаты были отброшены в 5.x - PullRequest
0 голосов
/ 31 октября 2018

Кто-нибудь есть идеи, где я могу посмотреть, чтобы изменить поведение?

Как и ожидалось, настройки «магических кавычек» ничего не делают, так как эта функция теперь отсутствует. Однако что-то пытается быть полезным, и я не уверен, что.

Шаги для воспроизведения:

  • Иметь поле в форме
  • Введите что-нибудь с одинарной кавычкой, например "Terry's String"
  • Опубликовать форму
  • $ _ POST ['fieldname']) теперь содержит введенную строку с одинарными кавычками, начинающимися с \, например: Terry\'s String

Отключение магических кавычек в файле конфигурации php не имеет никакого эффекта.

У кого-нибудь есть идеи, где еще искать или как это устранить?

Редактировать var_dump($_POST['FirstName']); возвращает: string(15) "Terry\'s String"

var_dump ($ _ GET [ 'FirstName']); возвращает array(1) { ["FirstName"]=> string(8) "Terry\'s" }, когда я передаю параметр в GET.

Форма поста из браузера показывает: FirstName=Terry%27s+String

1 Ответ

0 голосов
/ 01 ноября 2018

Спасибо всем и особенно @Phil, которые указали мне на var_dump(file_get_contents('php://input'));

Несмотря на то, что в PHP 7.2 нет магических кавычек, Wordpress имеет собственную реализацию magic_quotes и модифицирует данные PHP _POST для «помощи».

Несмотря на то, что я писал простой PHP-код, используя то, что я считал пост-данными формы PHP, на самом деле мне давали очищенную копию.

Оказывается, что Wordpress имеет проблемы со здоровьем и не может решить, хотят ли они включать или выключать Magic Quotes, даже если PHP удалил функциональность из языка.

https://core.trac.wordpress.org/ticket/18322

https://wordpress.stackexchange.com/questions/21693/wordpress-and-magic-quotes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...