Проблемы с PHP 5.4 и htmlspecialchars
Неожиданно в PHP 5.4 было поменяно поведение htmlspecialchars – очень частотной функции для фильтрации пользовательского ввода.
Такое ломание обратной совместимости вызвало стоны разработчиков по всему Интернету.
Почитать об этом можно здесь и здесь; а также еще в куче разных мест.
Мы приняли решение использовать следующий трюк для решения этой проблемы:
- Вместо функции htmlspecialchars мы ввели пользовательскую функцию htmlXspecialchars с поведением, аналогичным старому (см. здесь).
- Функция htmlXspecialchars описана в classes/autoinc/utils.php – он подключается автоматически.
После этого в версии QS 4.5 v 00 мы поменяли все вхождения, которые нам казались адекватными, на новую функцию.
Естественно, мы что-то могли пропустить – из-за этого QS 4.5 v 00 мы называем бетой – мы не проверяли в ней все варианты поведения.
Из всего вышесказанного можно дать следующие рекомендации:
- Если вы сильно перерабатывали ядро QS или просто планируете остаться на старой версии
- ...но хотите использовать свежие модули (у вас не находится функция htmlXspecialchars),
- то вам надо просто скопировать новый файл classes/autoinc/utils.php
- ...но хотите использовать свежие модули (у вас не находится функция htmlXspecialchars),
- Если у вас на новой версии QS не работают какие-то поля ввода, то проверьте, как в них фильтруются данные. Если что – поменяйте функцию на новую.